我有一个有趣的情况,我不确定这是我的错,还是jQuery的错,因此我想咨询你们。
目前我正在进行Ajax调用,该调用返回403状态代码。但403附带的字符串与标准不同。
它返回403 access denied
但是根据规范它应该是403 Forbidden
。
我知道如何从服务器获取200状态代码,问题在于如何处理这种情况。
这是我的Ajax jQuery代码,它不会进入任何console.log()
情况。
this.get = function(){
var callUrl = self.url + "&limit=" + self.limit + "&page=" + self.page;
callUrl += self.getFilterQuery();
callUrl += "&callback=?";
console.log(callUrl);
$.ajax({
url: callUrl,
dataType: 'json',
success: function(response){
console.log(response);
},
statusCode: {
403: function(response){
console.log('error');
console.log(response);
}
},
error: function(response){
console.log(response);
}
});
}
注意:网址是正确的,我可以获得200状态代码,但我想处理403 access denied
。我该如何解决这个问题?
答案 0 :(得分:3)
看起来这个调用实际上不是使用XHR请求而是通过JSONP。 (URL中的“callback =?”) - 对于JSONP请求,状态代码信息不可用。您需要确保始终发送有效的响应。
答案 1 :(得分:1)
引用此选项以查看您是否可以确定具体的拒绝。 http://en.wikipedia.org/wiki/HTTP_403检查抛出错误的目录的设置。