Как получить 304 от JQuery Ajax вместо 200?

Мои услуги возвращают304 но JQuery Ajax, кажется, конвертировать его в200 OKрезультат.

Это моя просьба:

<code>$.ajax({    
    url: '/api/items',    
    type: 'GET',    
    dataType: 'json',    
    contentType: 'application/json',    
    ifModified:true,    
    cache: false,    
    statusCode: {    
        304: function() {    
            alert("not modified"); // does not fire
        }    
    },    

    complete: function (xhr, status) {    
        console.log(xhr.status); // 200 
        }    
    }    
});
</code>

С Fiddler я вижу, что сервис возвращается304 правильно.

Почему jQuery конвертирует его в200?

 apsillers24 сент. 2014 г., 17:49

Ответы на вопрос(1)

Решение Вопроса

success(data, textStatus, jqXHR) событие и читать его изjqXHR.status

или получить доступ к jqXHR другим способом:

var jqxhr = $.ajax(
    ...     
    statusCode: {    
        200: function() {    
            if(304 == jqxhr.status)
                alert("not modified"); // does not fire
        }    
    },    
)

Правильный способ обработки 304 не изменен в jQuery AJAX

edit

дополнительныйajax() установка:

ifModified:true, // Lets respond `304:notmodified`

но это нарушает ответ данных:

http://forum.jquery.com/topic/how-to-fix-browser-cache-and-notmodified-respond-for-json-jquery-ajax-ifmodified-true-break-on-data-respond

но вы использовали его, и он все еще работает по-другому: - /

 Alexander Zeitler14 мая 2012 г., 10:21
Это все еще возвращает 200.
 14 мая 2012 г., 10:22
какая версия jQuery и какой браузер?
 Alexander Zeitler14 мая 2012 г., 11:23
спасибо - моя главная ошибка состояла в том, что я нажал на обновление в браузере вместо повторной выдачи запроса.
 Alexander Zeitler14 мая 2012 г., 10:24
1.7.2 / Chrome последняя версия / Firefox последняя версия

Ваш ответ на вопрос