0

我正在尝试使用 jQuery 将 AJAX 请求发送到其他服务器。我在本地经营。如果我使用 HTML dataType,我会得到经典的Origin http://127.0.0.1 is not allowed by Access-Control-Allow-Origin. 所以我开始使用 JSONP 请求:

$.ajax({
    url: 'SomeRemoteServer/SomeFile',
    dataType: 'jsonp',
    success: function(data) {
        // do stuff
    },
    error: function(d,msg) {
        alert(msg);
    }
});

捕获的错误是parsingerrorChrome js 调试器输出Resource interpreted as Script but transferred with MIME type text/html。在网上仔细查找此错误后,我发现错误来自服务器而不是我的脚本(它应该发回 MIME 类型application/json或类似的东西)。

然而,似乎服务器正在发送一些东西......我想捕捉响应并自行处理解析。这可行吗?如果是怎么办?我尝试了$.ajax()选项converters,但没有成功...

4

1 回答 1

0

我解决了我的问题dataFilter

$.ajax({
    url: 'SomeRemoteServer/SomeFile',
    dataType: 'jsonp',
    dataFilter: function(data) {
        // will run ok !
    }
    success: function(data) {
        // will fail
    },
    error: function(d,msg) {
        // will result in parsing error
    }
});
于 2013-05-01T16:46:30.253 回答