来自预检调用的http错误在jquery ajax响应中不可见

时间:2016-01-19 13:21:03

标签: javascript jquery ajax cors preflight

我构建了一个客户端应用程序,它使用Ajax在另一个域上调用WebService(服务器支持CORS)。

有时,当Ajax进行预检调用时,它会从服务器获取一个http错误代码400或500,并采用以下格式的响应:

{
  "httpStatus": 400,
  "statusCode": 400
}

我可以在浏览器控制台中看到错误,但在我的JavaScript代码中,我只获得状态0和statusText“错误”。有谁知道如何从JavaScript中检测预检调用的输出?

我的Ajax调用看起来很简单:

$.ajax({
    type: method,
    xhrFields: { withCredentials: true },
    url: url,
    cache: false,
    data: data || '',
    contentType: 'application/json; charset=UTF-8',
    dataType: 'json',
    beforeSend: function(r) {
        r.setRequestHeader('Authorization', 'Bearer ' + oauthtoken);
        r.setRequestHeader("X-Client-Version", "0.0.1");
    }
}).success(function(response) {
    console.log("success - service " + url);
    callback(response);
}).fail(function(response, textStatus, errorThrown) {
    console.log("fail - service " + url);
    callback(response);
});

0 个答案:

没有答案