Кажется, jQuery не распознает другую строку с кодом состояния вызова Ajax 403 - PullRequest
0 голосов
/ 30 марта 2012

У меня странная ситуация, в которой я не уверен, что это моя ошибка или ошибка 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.Как мне это решить?

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

Похоже, что этот вызов на самом деле выполняется не с использованием запроса XHR, а через JSONP.("callback =?" в вашем URL) - для запросов JSONP информация о коде состояния недоступна.Вам нужно будет убедиться, что вы всегда отправляете правильный ответ.

См. http://api.jquery.com/jQuery.ajax/

1 голос
/ 30 марта 2012

Ссылка на это, чтобы увидеть, можете ли вы определить конкретное отрицание.http://en.wikipedia.org/wiki/HTTP_403 Проверьте настройки каталога, в котором выдается ошибка.

...