升级到 jquery 1.5 会导致 .getJSON 出现问题
我目前的代码的一部分如下:
$.getJSON("http://cross.subdomain.url.com", 函数(数据){ 警报(数据.someobj); //使用数据来做一些工作。 } );
url http://cross.subdomain.url.com,返回 json。
在 jquery 1.4.4 中,这工作得很好。
更新到 jquery 1.5 后,此功能已停止工作。
我尝试了以下相同的变体:
- 将 dataType 更改为 json。
- 添加“回调”?到查询。
有人可以阐明 jquery ajax 对象的行为方式吗?
谢谢
I have a part of my present code as follows:
$.getJSON("http://cross.subdomain.url.com",
function (data) {
alert(data.someobj);
//use the data to do some work.
}
);
The url http://cross.subdomain.url.com, returns json.
This was working perfectly fine , when in jquery 1.4.4.
After updating to jquery 1.5, this has stopped working.
I have tried the following variations of the same:
- Changing dataType to json.
- Adding "callback?" to the query.
Can someone please shed light on how the jquery ajax object behaves??
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您需要以 JSONP 形式提供数据。
这是封装在函数中的 JSON,因此不是在服务器端返回
{"happy":"yes"}
,而是响应包含查询字符串参数的 url 请求callback=myfunction
,您生成myfunction({"happy":"yes"})
作为响应。这可能在 Jquery 的早期版本中被屏蔽,并且您的应用程序可能无法在某些浏览器(例如 Chrome)中运行。
You need to supply your data as JSONP.
This is JSON, wrapped in a function, so rather than returning
{"happy":"yes"}
on the server side, in response to a request for a url containing the query string parametercallback=myfunction
, you generatemyfunction({"happy":"yes"})
as the response.This may have been masked in a prior version of Jquery and your application could have not worked in some browsers (eg. Chrome).
这是一个错误,已在 1.5.1 中修复。查看ticket http://bugs.jquery.com/ticket/8125,可以找到最新的带有最新修复的 jQuery 版本位于 http://code.jquery.com/jquery-git.js
This was a bug and it is fixed in 1.5.1. See ticket http://bugs.jquery.com/ticket/8125, You can find the latest jQuery release with up to date fixes at http://code.jquery.com/jquery-git.js
getJSON 的 jQuery 文档页面显示以下内容(在 附加注释部分):
听起来您违反了该政策。
The jQuery documentation page for getJSON reveals the following (in the Additional Notes section):
It sounds like you are violating that policy.
当服务器端的内容类型未设置为 json 时,也会出现此问题。
在服务器端执行以下操作可以解决问题:
This issue is also occurring when on the server side the content type is not set to json.
On the server side doing the following resolves the issue: