跨域 jsonp 的基本操作方法

发布于 2024-10-26 19:57:09 字数 296 浏览 2 评论 0原文

我到处找这个。我只需要一个简单的“如何”拉 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离旧人 2024-11-02 19:57:09

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 响应。

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:

  1. It needs to formulate a JSONP response, rather than a JSON response.
  2. It needs to know the name of the function to wrap the response around.

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

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

(which is valid JSON), rather than:

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

which is a JSONP response.

↙厌世 2024-11-02 19:57:09

如果您尝试这些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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文