2012-01-03 16 views
0

私はクロムで完璧に動作するコードをいくつか持っていますが、IEでは間違っています。 if条件はchromeで完全に機能しますが、IEのようにresDataの値に関係なく常に最初の条件が実行されます。私は応答をwiresharkedし、パケットには 'started'が含まれていますが、最初の条件if(resData === '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); 
     } 
    } 
}); 

編集:私は "==" すべての場合の条件を変更している

さらにデバッグした後、必ず最初のif条件を実行するとは限りません.Ajax関数が問題のようです。それは、ページがロードされた後に最初に実行されるときに適切なデータ値を取得しますが、wiresharkに適切な更新値が表示されていても、他のGETは最初の値を返します。

答えて

1

悪名高いIE-AJAXキャッシングの問題のような音がします。ここにいくつかの情報http://ajaxian.com/archives/ajax-ie-caching-issueがありますが、おそらくGoogleはもう少しあなたを提供します。 IEは応答をキャッシュするので、最初の応答が何度も繰り返されているのです。私はちょっと混乱しています.Wiresharkでリクエストが行われていることがわかりますが、URLを'/getOutputBuffer?r=' + new Date().getTime()のように設定してみてください。

+0

正確に問題です。私の$ .getを$ .postに変更し、私のget要求をサーバーサイドに変更して投稿しました。理由は、postは仕様と同様に、getとは異なりリクエストごとにキャッシュしないということです。面白いことにクロムがこれに続くわけではありませんが、IEはそうです。 – guiomie

3

「===」は使用しないでください。「==」を使用してください。文字列OBJECTと文字列LITERALの間に型の違いがあります。この場合、(value + type)同値ではなく、value equivalenceのみを気にします。

+0

試してみましたが、問題は解決しません。私は私の投稿を編集した、それは何か他のif条件に関連しているようだ。 – guiomie

関連する問題