2012-01-03 2 views
0

У меня есть код, который отлично работает в chrome, но в IE он ошибочен. Условие if отлично работает в chrome, но похоже, что в IE первое условие всегда выполняется независимо от значения resData. Я просил передать ответ, и пакет содержит «запущен», но он по-прежнему входит в первое условие if if (resData === 'not runnin').

$.get('/getOutputBuffer', function(resData){ 
    if(resData === 'not running'){ 
     $('#output').append('Executable not started<br>'); 
    } 
    else{ 
     $('#output').append('Executable started (Now listening)<br>'); 
     if(resData !== 'no updates'){ 
      $('#output').append('status is ' +resData); 
     } 
    } 
}); 

Edit:

Я изменил все, если состояние с "==".

После дополнительной отладки он не всегда выполняет первое условие if, кажется, проблема ajax. Он получает правильное значение данных при первом запуске после загрузки страницы, но любое другое GET даст мне первое значение, даже если в wirehark оно отображает правильное обновленное значение.

ответ

1

Звучит как печально известная проблема кэширования IE-AJAX. Вот некоторая информация http://ajaxian.com/archives/ajax-ie-caching-issue, но Google, вероятно, предоставит вам еще несколько. IE кэширует ответы, поэтому я думаю, именно поэтому вы получаете первый ответ снова и снова. Я немного смущен, потому что вы видите в Wireshark, что делаются запросы, но попробуйте установить URL-адрес примерно на '/getOutputBuffer?r=' + new Date().getTime() и посмотреть, что произойдет.

+0

Точно проблема. Изменен мой $ .get для $ .post и изменил мою серверную часть запросов на получение почты, и все это работает. Причина в том, что сообщение не кэшируется после каждого запроса в отличие от get, как и в соответствии со спецификацией. Забавно, что хром не следит за этим, но IE делает. – guiomie

3

Не используйте «===», просто используйте «==». Существует различие типов между строкой OBJECT и строкой LITERAL. В этом случае вам нужна только эквивалентность эквивалентности, а не эквивалентность (значение + тип).

+0

Пробовал, не исправляет проблему. Я редактировал свой пост, он, похоже, связан с чем-то другим условием if. – guiomie

Смежные вопросы