2011-03-28 96 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响应。