使用AJAX从另一台服务器接收数据

时间:2013-05-01 16:10:32

标签: jquery ajax parsing jsonp

我正在尝试使用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);
    }
});

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

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

1 个答案:

答案 0 :(得分: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
    }
});