跨域jsonp的基本方法

时间:2011-03-28 18:19:28

标签: jquery cross-domain jsonp

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

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

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

这根本不起作用。

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

由于

2 个答案:

答案 0 :(得分:13)

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

  1. 需要制定JSONP响应,而不是JSON响应。
  2. 需要知道用于包装响应的函数的名称。
  3. 如果你不确定服务器为什么需要知道这些,或者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响应,则应获取回调值并将其动态设置为您的响应。本文有详细解释