jQuery没有't似乎通过Ajax调用状态代码403识别出不同的字符串

jQuery doesn't seem to recognize a different string with an Ajax call statuscode 403

本文关键字:识别 代码 状态 字符串 调用 Ajax 没有 jQuery      更新时间:2023-09-26

我遇到了一个有趣的情况,我不确定这是我的错,还是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);
        }
    });    
}

注意:URL是正确的,我可以获得200状态代码,但我想处理403 access denied。我该如何解决此问题?

看起来这个调用实际上不是使用XHR请求而是通过JSONP进行的。(URL中的"callback=?")-对于JSONP请求,状态代码信息不可用。您需要确保始终发送有效的响应。

请参阅http://api.jquery.com/jQuery.ajax/

参考此信息,查看是否可以确定具体的拒绝。http://en.wikipedia.org/wiki/HTTP_403检查引发错误的目录的设置。