При отладке AJAX компонента сайта при переносе на хостинг обнаружилась редкая ошибка с кодом ответа сервера 411.
[336x356]
Причем на локальной версии подобная ошибки не было. Код который выполнялся:
$.ajax({
url: '/order/add?' + paramstr,
type: 'POST',
datatype: 'html',
success: function(html){
...
}
});
Проблема видимо возникает в следствии использования nginx'а. Потому что ошибку возвращает именно он. Суть проблемы в том, что приходит пустой POST запрос на сервер для которого Mozilla не прописывает заголовок Content-Length. Тоесть для успешного отлова зверя надо 3 составляющие: Mozilla Firefox, AJAX POST запрос и nginx.
Стандарт по этому поводу говорит следующее:
The server refuses to accept the request without a defined Content- Length. The client MAY repeat the request if it adds a valid Content-Length header field containing the length of the message-body in the request message.
А я и не гордый, могу и попытаться повторить запрос, переписав этот кусок:
$.ajax({
url: '/order/add?' + paramstr,
type: 'GET',
datatype: 'html',
success: function(html){
...
}
});