gpt4 book ai didi

xmlhttprequest - mootools 请求类和 CORS

转载 作者:行者123 更新时间:2023-12-02 02:17:23 25 4
gpt4 key购买 nike

我正在尝试使用 CORS 让脚本对地理名称执行 Ajax 请求。我的脚本调用此 Web 服务方法:http://www.geonames.org/export/web-services.html#findNearby

如果您检查示例调用的响应 header ,它们包括:访问控制允许来源:*

当我使用 mootools(刚刚下载的 1.4.5 版)进行尝试时:

var urlGeonames = "http://api.geonames.org/findNearbyPlaceName";
var req = new Request({
method: 'get',
url: urlGeonames,
data: {
'lat': '89.18',
'lng': '-0.37',
'username': 'myusername',
'radius': '5'
}
}).send();

然后我收到一条错误消息:

XMLHttpRequest cannot load
http://api.geonames.org/findNearbyPlaceName?lat=89.18&lng=-0.37&username=myusername&radius=5.
Origin http://127.0.0.1 is not allowed by Access-Control-Allow-Origin.</pre>

另一方面,当我尝试像这样的旧式 Ajax 代码时:

invocation = new XMLHttpRequest();
if(invocation)
{
invocation.open('GET', urlFlickr, true);
invocation.onreadystatechange = handler;
invocation.send();
}

然后它起作用了,我在 XHR responseXML 中得到了 XML 响应。

我找到了这篇文章 A CORS POST request works from plain javascript, but why not with jQuery?那是相似的。但在这里我不处理我的服务器,所以我只能在 javascript 端工作。

有没有人使用过 CORS 和 mootools 并且可以帮助解决这个问题?非常感谢 JM

最佳答案

嘿伙计,看看 mootools 更多 JSONP 这将解决你的问题:

http://mootools.net/docs/more/Request/Request.JSONP

另外,您似乎忘记从 geonames.org 以 JSON 格式索取它

尝试这样的事情:

var myJSONP = new Request.JSONP({
url: 'http://api.geonames.org/findNearbyPlaceNameJSON',
data: {
'lat': '89.18',
'lng': '-0.37',
'username': 'myusername'
},
onRequest: function(url){
// a script tag is created with a src attribute equal to url
},
onComplete: function(data){
// the request was completed.
console.log(data);
}
}).send();

希望这对您有所帮助!

关于xmlhttprequest - mootools 请求类和 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9830546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com