2011-02-16 60 views
0

我有我现在的代码部分如下:升级到jQuery的1.5导致问题与.getJSON

$ .getJSON(“http://cross.subdomain.url.com”, 功能(数据){ alert(data.someobj); //使用这些数据做一些工作 } );

url http://cross.subdomain.url.com,返回json。

这在jquery 1.4.4中工作得很好。

更新到jquery 1.5之后,它已停止工作。

我已经试过相同的以下变化:

  1. 更改数据类型为JSON。
  2. 添加“回调?”到查询。

有人可以请说明如何jquery ajax对象的行为?

谢谢

回答

0

当服务器端的内容类型未设置为json时,也会发生此问题。 在服务器端执行以下操作解决问题:

  1. response.setContenyType( “文/ JSON”);
  2. 回应。的setHeader(“访问控制允许来源”,“*”);
1

您需要提供您的数据作为JSONP。

这是JSON,包裹在一个功能,所以,而不是在服务器端返回{"happy":"yes"},响应于对含有查询字符串参数callback=myfunction一个URL的请求,则生成myfunction({"happy":"yes"})作为响应。

这可能在之前版本的Jquery中被屏蔽了,并且你的应用程序可能在某些浏览器(例如Chrome)中无法工作。

0

getJSON jQuery的文档页面显示如下(在Additional Notes部分):

由于浏览器安全限制, 大部分“Ajax”请求都受到 同源策略的限制;请求 无法成功检索来自不同域,子域或 协议的数据 。

这听起来像是你违反了该政策。