我很抱歉这可能是论坛上的一个重复问题,但我在理解使用 jquery 加载 jsonp 的过程时遇到了可怕的麻烦。
我只是想编写一个函数,从以下 url 打印出 json 数据:
http://policeapi2.rkh.co.uk/api/crimes-at-location?date=2012-02&lat=52.629729&lng=-1.131592
一个简单的示例函数会很棒!
谢谢,
——丹
我很抱歉这可能是论坛上的一个重复问题,但我在理解使用 jquery 加载 jsonp 的过程时遇到了可怕的麻烦。
我只是想编写一个函数,从以下 url 打印出 json 数据:
http://policeapi2.rkh.co.uk/api/crimes-at-location?date=2012-02&lat=52.629729&lng=-1.131592
一个简单的示例函数会很棒!
谢谢,
——丹
对不起,但你不能这样做。您提到的 API 服务于 JSON,而不是 JSONP。您无法以某种方式从浏览器将其转换为 JSONP。
因为这是一个跨站点请求,您将无法从浏览器读取 JSON 内容。
只有几个选项:
在您自己的服务器(托管您的页面)上,设置一个代理来加载他们的 JSON 并将其传递给您的代码。确保 API 具有的任何服务条款都可以。
让 Policeapi2 人员自己支持 JSONP 请求,或者支持 CORS 请求。
这就是我们使用 jquery 加载 JSONP 的方式
$.ajax({
url: 'http://jsfiddle.net/echo/jsonp/',
dataType: 'jsonp',
success: function (data) {
$('body').text(data);
}
});
请记住,该 url 应该为此工作提供一个 jsonp,您提供的 Url 不返回 JSONP,因此您不能这样做。
尝试使用JSON2.js。这是一个例子:
$.ajax({
url: 'http://policeapi2.rkh.co.uk/api/crimes-at-location?date=2012-02&lat=52.629729&lng=-1.131592',
success: function(data){
alert(JSON.stringify(data));
}
})