我构建了一个客户端应用程序,它使用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);
});