【问题标题】:Basic how-to for cross domain jsonp跨域 jsonp 的基本操作方法
【发布时间】:2011-07-24 17:03:33
【问题描述】:

我到处找这个。我只需要一个简单的“操作方法”拉 jsonp 跨域。我正在使用 jQuery 1.5.1。

我在另一个网站的程序中尝试了以下内容:

$.getJSON("http://www.mydomain.com/testjson.json?jsoncallback=?", function(data) {
    alert("I'm hitting this.");
}

这根本不起作用。

有没有办法只做一个简单的跨域 jquery JSONP 调用?

谢谢

【问题讨论】:

  • 你最后缺少);。检查控制台是否有错误。

标签: jquery cross-domain jsonp


【解决方案1】:

JSONP 需要服务器的配合才能成功。您不能使用 JSONP 拉取随机页面并期望它们成功;服务器需要知道:

  1. 它需要制定 JSONP 响应,而不是 JSON 响应。
  2. 它需要知道包装响应的函数的名称。

如果您不确定为什么服务器需要知道这些,或者 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 响应。

【讨论】:

    【解决方案2】:

    如果您逐步尝试这些http://terrasus.com/detail.jsp?articleID=396,它将正常工作。 如果您生成 jsonp 响应,您应该获取回调值并将其动态设置为您的响应。这篇文章有详细解释

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 2013-02-24
      • 2013-02-24
      • 1970-01-01
      • 2011-02-02
      • 2014-04-19
      • 2013-04-04
      • 2011-02-13
      • 2016-01-06
      相关资源
      最近更新 更多