JQuery - $.ajax() - 使用 JSONP 的跨域 - 仅在 IE 8 中获取'parsererror'(在 IE 7 中工作)



我有以下代码做跨域请求并获得JSONP数据(JSON包装的回调方法)。我已经验证了使用封装JSON数据的回调方法获得的响应是正确的。它在IE7中工作完美(回调cb正在被调用),但在IE8中不是。

    $(document).ready(function () {
    var abc = $.ajax({
        type: "GET",
        url: "http://sd.domain.com/param1=a&param2=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);
}

我得到statusText作为'Success'和StatusCode作为200在xhr。此外,我无法找到任何适当地称为responseText为xhr。那么我如何在错误/完成函数中得到响应?什么好主意吗?

Jquery自动传递回调,如callback=JQuery132123412415235和服务器必须返回一个脚本调用这个函数与数据JQuery132123412415235(data_returned)和其余的等于标准json请求

你也使用成功和错误属性,并使用承诺和error(function (data) )complete(function (data))只是为了一个清晰的代码,我认为你必须只使用一个方法。代码如下:

$(document).ready(function () {
    var abc = $.ajax({
        type: "GET",
        url: "http://sd.domain.com/param1=a&param2=b&output=json",
        dataType: "jsonp",
        jsonp: false,
        cache: false
    });
    abc.error(function (data, xhr, dat1) {
    });
    abc.complete(function (xhr, status) {
        var data = xhr.responseText;
    });
    abc.done(data){
       //alert(data.people[0].nameFirst); ?????        
    }
});

请记住,服务器必须以callback_function(data)的形式返回数据,其中数据是json对象,就像您在标准json调用中返回一样。

相关内容

  • 没有找到相关文章

最新更新