跨域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拉随机页面并期望它们成功; 服务器需要知道:
- 它需要制定JSONP响应,而不是JSON响应。
- 它需要知道函数的名称来包装响应。
如果你不确定服务器为什么需要知道这些,或者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响应,你应该得到回调值并动态地将它设置为你的响应。 本文有详细解释