跨域jsonp的基本方法

use*_*733 13 jquery jsonp cross-domain

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

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

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

这根本不起作用.

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

谢谢

Mat*_*att 13

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

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

如果你不确定服务器为什么需要知道这些,或者JSON和JSONP之间存在什么差异,你应该阅读它们; 或者整件事没有意义.对于初学者,请查看任何人都可以用外行术语解释JSONP是什么?http://en.wikipedia.org/wiki/JSONP.

在了解了这一点之后,您可能会发现服务器正在返回

{ "key": 1, "bar": "foo" }
Run Code Online (Sandbox Code Playgroud)

(这是有效的JSON),而不是:

someCallback({ "key": 1, "bar": "foo" })
Run Code Online (Sandbox Code Playgroud)

这是一个JSONP响应.