2011-03-28 58 views
13

我在這裏到處尋找這個。我只需要一個簡單的「如何」拉jsonp跨域。我正在使用jQuery 1.5.1。基本如何爲跨域jsonp

我想在其他網站上的程序如下:

$.getJSON("http://www.mydomain.com/testjson.json?jsoncallback=?", function(data) { 
    alert("I'm hitting this."); 
} 

這並不在所有的工作。

有沒有辦法只是做一個簡單的跨域jQuery JSONP調用?

謝謝

+7

你缺少');'在最後。檢查控制檯是否有錯誤。 – 2011-03-28 18:21:29

回答

13

JSONP需要服務器的合作才能成功。你不能使用JSONP抽取隨機頁面,並期望它們成功;服務器需要知道:

  1. 它需要制定JSONP響應,而不是JSON響應。
  2. 它需要知道函數的名稱來包裝響應。

如果您不確定服務器爲什麼需要知道這些信息,或者JSON和JSONP之間有什麼區別,您應該閱讀它們;或者整件事情都沒有意義。對於初學者,請查看Can anyone explain what JSONP is, in layman terms?http://en.wikipedia.org/wiki/JSONP

理解這多一點之後,你可能會發現服務器返回

{ "key": 1, "bar": "foo" } 

(這是有效的JSON),而不是:

someCallback({ "key": 1, "bar": "foo" }) 

這是一個JSONP響應。