2013-04-09 57 views
1

我很抱歉,這可能是在論壇上的重複問題,但我有jquery中加載jsonp的過程中遇到可怕的麻煩。簡單的例子需要用jquery加載jsonp

我只是想編寫從以下網址打印出的JSON數據的函數:

http://policeapi2.rkh.co.uk/api/crimes-at-location?date=2012-02&lat=52.629729&lng=-1.131592

一個簡單的例子,功能將是非常美妙!

感謝,

- 丹

+0

http://api.jquery.com/jQuery.getJSON/ – David 2013-04-09 19:32:07

+0

大衛,很明顯,我已經通過這個看了,但我解釋,我還是從基礎掙扎。因此,一個簡單的例子與我想要的URL將大大幫助我理解這是如何工作的... – djnetherton 2013-04-09 19:35:36

+0

@ user2263300:您無法使用jQuery加載該JSON數據。這不是JSONP,你的跨域請求會被瀏覽器阻止。 – Blender 2013-04-09 19:39:46

回答

0

嘗試使用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)); 
    } 
}) 
+0

這不起作用。這是一個跨站請求。 – 2013-04-09 19:41:07

2

對不起,但你不能這樣做。你提到的API服務JSON,而不是JSONP。您無法以某種方式將它從瀏覽器轉換爲JSONP。

因爲這是一個跨站點請求,您將無法從瀏覽器讀取JSON內容。

目前只有兩個選擇:

  1. 在自己的服務器(在您的網頁託管),搭起加載自己的JSON並將其傳遞到您的代碼的代理。確保無論API的服務條款如何都可以。

  2. 讓policeapi2的人支持JSONP請求自己,或者支持CORS請求。

1

這就是我們如何加載JSONP使用jQuery

$.ajax({ 
    url: 'http://jsfiddle.net/echo/jsonp/', 
    dataType: 'jsonp', 
    success: function (data) { 
     $('body').text(data); 
    } 
}); 

記住,URL應該成爲一個JSONP這個工作,你提供不返回JSONP的網址,所以你不能做這樣。

FIDDLE