跨域jsonp的基本方法

我到处都看这个。 我只需要一个简单的“操作方法”拉jsonp跨域。 我正在使用jQuery 1.5.1。

我在另一个网站的程序中尝试了以下内容:

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

这根本不起作用。

有没有办法只做一个简单的跨域jquery JSONP调用?

谢谢

JSONP需要服务器的合作才能成功。 你不能使用JSONP拉随机页面并期望它们成功; 服务器需要知道:

  1. 它需要制定JSONP响应,而不是JSON响应。
  2. 它需要知道函数的名称来包装响应。

如果你不确定服务器为什么需要知道这些,或者JSON和JSONP之间存在什么差异,你应该阅读它们; 或者整件事没有意义。 对于初学者,请查看任何人都可以用外行术语解释JSONP是什么? 和http://en.wikipedia.org/wiki/JSONP 。

在了解了这一点之后,您可能会发现服务器正在返回

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

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

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

这是一个JSONP响应。

如果您逐步尝试这些http://terrasus.com/detail.jsp?articleID=396 ,它将正常工作。 如果你生成jsonp响应,你应该得到回调值并动态地将它设置为你的响应。 本文有详细解释