跨域 jsonp 的基本操作方法
我到处找这个。我只需要一个简单的“如何”拉 jsonp 跨域。我正在使用 jQuery 1.5.1。
我在另一个站点上的程序中尝试了以下操作:
$.getJSON("http://www.mydomain.com/testjson.json?jsoncallback=?", function(data) {
alert("I'm hitting this.");
}
这根本不起作用。
有没有办法只进行简单的跨域 jquery JSONP 调用?
谢谢
I looked everywhere here for this. I need just a simple "how-to" pull jsonp cross domain. I'm using jQuery 1.5.1.
I tried the following in a program on another site:
$.getJSON("http://www.mydomain.com/testjson.json?jsoncallback=?", function(data) {
alert("I'm hitting this.");
}
This doesn't work at all.
Is there a way of just doing a simple cross domain jquery JSONP call?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
JSONP需要服务器的配合才能成功。您不能使用 JSONP 提取随机页面并期望它们成功;服务器需要知道:
如果您不确定为什么服务器需要知道这些,或者 JSON 和 JSONP 之间有什么区别,您应该阅读它们;否则整件事就没有意义了。对于初学者,请查看 可以有人用外行术语解释一下 JSONP 是什么吗? 和 http://en.wikipedia.org /wiki/JSONP。
进一步了解这一点后,您可能会发现服务器正在返回
(这是有效的 JSON),而不是:
这是 JSONP 响应。
JSONP requires the cooperation of the server to succeed. You cannot pull random pages using JSONP and expect them to succeed; the server needs to know:
If you're unsure on why the server needs to know these, or what the differences are between JSON and JSONP, you should read up on them; or the whole thing will make no sense. For starters, check out Can anyone explain what JSONP is, in layman terms? and http://en.wikipedia.org/wiki/JSONP.
After understanding this a little more, you'll probably find the server is returning
(which is valid JSON), rather than:
which is a JSONP response.
如果您尝试这些http://terrasus.com/detail.jsp?articleID=396一步一步它会工作得很好。
如果您生成 jsonp 响应,您应该获取回调值并将其动态设置为您的响应。这篇文章有详细的解释
If you try these http://terrasus.com/detail.jsp?articleID=396 step by step it will work fine.
if you produce jsonp response you should get the callback value and set it to your response dynamically. This article has a detail explanation