我在这里看到无处不在.我只需要一个简单的“how-to”来拉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之间的差异,您应该阅读它们;或者整个事情都没有意义.对于初学者,请查看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响应.