我现有代码的一部分如下:
$。的getJSON( “http://cross.subdomain.url.com”, function(data){ 警报(data.someobj); //使用数据做一些工作。 } );
网址http://cross.subdomain.url.com,返回json。
这在jquery 1.4.4中完全正常。
更新到jquery 1.5后,它已停止工作。
我尝试了以下相同的变体:
有人可以了解jquery ajax对象的行为吗?
由于
答案 0 :(得分:1)
您需要以JSONP的形式提供数据。
这是JSON,包含在一个函数中,所以不是在服务器端返回{"happy":"yes"}
,而是响应对包含查询字符串参数callback=myfunction
的url的请求,生成{{1作为回应。
这可能已经在Jquery的早期版本中被屏蔽了,并且您的应用程序可能在某些浏览器中无效(例如Chrome)。
答案 1 :(得分:1)
这是一个错误,它在1.5.1中修复。查看票证http://bugs.jquery.com/ticket/8125,您可以在http://code.jquery.com/jquery-git.js
找到最新的jQuery版本,其中包含最新的修补程序。答案 2 :(得分:0)
getJSON的jQuery文档页面显示以下内容(在 Additional Notes 部分中):
由于浏览器安全限制, 大多数" Ajax"请求受制于 同源政策;请求 无法成功检索数据 来自不同的域,子域或 协议
听起来你违反了这项政策。
答案 3 :(得分:0)
在服务器端,内容类型未设置为json时也会发生此问题。 在服务器端执行以下操作可以解决问题: