我正在尝试对.ajax()公共Web服务进行jQuery 调用,而我却无法找到正确的语法.
我尝试了几种不同的实现方式.这个:
$.ajax({
  url: 'http://www.geognos.com/api/en/countries/info/all.jsonp',
  dataType: "jsonp",
  success: function() {
    alert('JSONP call succeeded!');
  }
});
它失败并出现以下错误:
all.jsonp:1 Uncaught ReferenceError: callback is not defined
还有这个:
$.ajax({
  url: 'http://www.geognos.com/api/en/countries/info/all.json',
  dataType: "json",
  success: function() {
    alert('JSON call succeeded!');
  }
});
失败,出现此错误:
XMLHttpRequest cannot load http://www.geognos.com/api/en/countries/info/all.json. Origin http://localhost:8888 is not allowed by Access-Control-Allow-Origin.
我通过本地IIS7实例提供页面服务.我也尝试过各种$.getJSON()类似结果的组合.我错过了什么?
更新:我们认为我们有一个解决方案,但是callback is not defined在进行JSONP调用时我仍然会收到错误,即使调用了警报/日志代码.响应URL如下所示:
http://www.geognos.com/api/en/countries/info/all.jsonp?callback=undefined&157148585
并且JSON响应包含如下:
callback({"StatusMsg": "OK", "Results": {"BD": {"Name": "Bangladesh", "Capital": {"DLST": "null", "TD": 6.0, "Flg": 2, "Name": "Dhaka", ...
我发现在.ajax()配置中URL的末尾添加了回调名称的示例,但是当我尝试时,我得到相同的结果,只有它被添加到我的查询字符串的末尾.
由于相同的原始策略,此常规JSON调用将不起作用.这是你的错误告诉你的:is not allowed by Access-Control-Allow-Origin.
正确的JSONP语法是:
$.ajax({
    url: 'http://www.geognos.com/api/en/countries/info/all.jsonp',
    dataType: "jsonp",
    jsonpCallback: 'callback',
    success: function(data) {
        console.log(data);
    }
});
| 归档时间: | 
 | 
| 查看次数: | 9939 次 | 
| 最近记录: |