Я работаю над приложением, которое делает ajax-вызовы, и иногда я сталкиваюсь с довольно странным поведением, когда ajax-вызов запускается, он дублирует себя, и второй завершается, но я не получаю ответ обратно и исходный продолжает загружаться вечно, это исправлено, когда снова запускается вызов ajax или когда я нажимаю кнопку обновить.
Проблема в том, что я не могу воспроизвести это поведение, потому что оно происходит случайно. В большинстве случаев, когда вкладка остается открытой, а я нахожусь на другой вкладке или в программе.
Единственное, что я заметил при использовании firebug, это то, что, похоже, что-то не так с заголовками ответов.
По сравнению с успешным звонком они в другом порядке, и некоторая информация полностью отсутствует. У Content-Type
всегда больше типов, чем text/html
, которые я определяю в своем $.ajaxSetup
.
$.ajaxSetup({
dataType:'html',
cache:false,
type:'POST',
timeout:15000,
error:function() {
alert('Action aborted please try again');
},
complete:function(XMLHttpRequest,textStatus){
//console.log('XMLHttpRequest.readyState : '+XMLHttpRequest.readyState+'\nXMLHttpRequest.statusText : '+XMLHttpRequest.statusText+'\nXMLHttpRequest.status : '+XMLHttpRequest.status+'\ntextStatus : '+textStatus);
}
});
и пример моих вызовов ajax:
var dataString = 'value='+value+'&value1='+value1+'&value2='+value2;
$.ajax({
url:'file.php',
data:dataString,
success:function(resp){
alert(resp);
}
})
такое поведение происходило намного чаще до того, как я добавил dataType
, а также оно происходило чаще при локальном просмотре на машине winXP SP3 с использованием xampp, и я думаю, что и firefox, и IE.
Я проверил на сервере под управлением Windows Server 2008 и Apache и PHP автономных не XAMPP, что происходит и происходит даже меньше.
С моим домашним компьютером, почти никогда не бывает, что вышеописанное тестирование было на моем офисном компьютере.
кто-нибудь сталкивался с подобным типом поведения или, может быть, есть способ кодировать мои вызовы ajax по-другому.
Я бы не хотел использовать плагин, и длительный опрос на сервере Apache кажется слишком тяжелым.