我到处都看这里。我只需要一个简单的“操作方法”拉jsonp跨域。我正在使用jQuery 1.5.1。
我在另一个网站的程序中尝试了以下内容:
$.getJSON("http://www.mydomain.com/testjson.json?jsoncallback=?", function(data) {
alert("I'm hitting this.");
}
这根本不起作用。
有没有办法只做一个简单的跨域jquery JSONP调用?
由于
答案 0 :(得分:13)
JSONP需要服务器的合作才能成功。你不能使用JSONP拉随机页面并期望它们成功;服务器需要知道:
如果你不确定服务器为什么需要知道这些,或者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响应。
答案 1 :(得分:1)
如果您逐步尝试这些http://terrasus.com/detail.jsp?articleID=396,它将正常工作。 如果您生成jsonp响应,则应获取回调值并将其动态设置为您的响应。本文有详细解释