我试图使用CORS让脚本对geonames执行Ajax请求。 我的脚本调用这个Web服务方法:http://www.geonames.org/export/web-services.html#findNearbymootools请求类和CORS
如果您检查样品呼叫的响应头,它们包括: 访问控制允许来源:*
当我尝试这通过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应答XML的XML响应。
我发现这个职位A CORS POST request works from plain javascript, but why not with jQuery?这是相似的。但在这里我不处理我的服务器,所以我只能在JavaScript方面工作。
有没有人与CORS和mootools合作过,可以帮助解决这个问题? 非常感谢 JM
BTW本网站和API是真棒!我几个月前才发现它。如果您需要更多帮助,请填写下面的答案。 – 2012-03-26 20:14:32