JQuery - $.ajax() - 使用 JSONP 跨源 - 获取“parsererror”仅适用于 IE 8(适用于 IE 7)
我有以下代码来执行跨域请求并获取 JSONP 数据(通过回调方法包装的 JSON)。我已经验证我使用包装 JSON 数据的回调方法正确获得了响应。它在 IE7 中工作得很好(回调 cb 被调用),但在 IE8 中则不然。
$(document).ready(function () {
var abc = $.ajax({
type: "GET",
url: "http://sd.domain.com/param1=a¶m2=b&output=json&callback=cb",
dataType: "jsonp",
jsonp: false,
cache: false,
success: function (json) {
},
error: function (e) {
}
});
abc.error(function (data, xhr, dat1) {
});
abc.complete(function (xhr, status) {
var data = xhr.responseText;
});
});
function cb(dd) {
alert(dd.people[0].nameFirst);
}
我在 xhr 中得到的 statusText 为“Success”,StatusCode 为 200。另外,我无法找到任何正确称为 xhr 的responseText。那么如何获得错误/完整函数中的响应呢?有什么想法吗?
I've the following code to do a crossdomain request and get JSONP data (JSON wrapped with by callback method). I've verified that I'm getting the response correctly with the callback method wrapping my JSON data. It is working PERFECTLY in IE7 (the callback cb is getting called) but not in IE8.
$(document).ready(function () {
var abc = $.ajax({
type: "GET",
url: "http://sd.domain.com/param1=a¶m2=b&output=json&callback=cb",
dataType: "jsonp",
jsonp: false,
cache: false,
success: function (json) {
},
error: function (e) {
}
});
abc.error(function (data, xhr, dat1) {
});
abc.complete(function (xhr, status) {
var data = xhr.responseText;
});
});
function cb(dd) {
alert(dd.people[0].nameFirst);
}
I'm getting the statusText as 'Success' and StatusCode as 200 in xhr. Also I'm not able to find any propertly called responseText for xhr. So how can I get the response in the error/complete functions? Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Jquery 自动传递类似
callback=JQuery132123412415235
的回调,服务器必须返回一个使用数据JQuery132123412415235(data_returned)
调用此函数的脚本,其余部分等于标准 json request您还使用 success 和 error 属性,并使用 Promise 和
error(function (data) )
和complete(function (data))
只是为了清晰的代码,我认为你必须只使用一种方法。代码如下:请记住,服务器必须以回调函数(数据)的形式返回数据,其中数据是 json 对象,就像您在标准 json 调用中返回一样。
Jquery automatic pass a callback something like
callback=JQuery132123412415235
and the server must return a script calling this function with the dataJQuery132123412415235(data_returned)
and the rest is equal to the standard json requestYou also use the success and error properties and use the promise and
error(function (data) )
andcomplete(function (data))
just for a clear code I think you must use only one method. The code is like this:Remember the server must return the data in the form callback_function(data) where data is the json object like if you returned in a standard json call.