2011-08-06 7 views
0

私はChromeでうまく動作するこのjavascriptを持っていますが、IEではSuccess関数で渡された 'data' varは常に空の文字列です。私のハンドラはヒットしていないのは何ですか?jQuery ajax呼び出しエラーは、IE8のデータパラメータが1つだけの場合ですか?

(jQueryの1.6.2)

$.ajax({ 
    url: "/rb.ashx", 
      type: "GET", 
      data: ({ cmd: 'getpmcount' }), 
      async: true, 
      success: function (data) { 
       alert('unread [' + data + ']'); 
      } 
     }); 

しかし私は、発信データにダミーのparamを追加した場合:

$.ajax({ 
    url: "/rb.ashx", 
      type: "GET", 
      data: ({ cmd: 'getpmcount', x:'x' }), 
      async: true, 
      success: function (data) { 
       alert('unread [' + data + ']'); 
      } 
     }); 

それが正常に動作します!

誰にこの理由が説明できるのですか?私はむしろ、このハックを適所に置くよりもうまく動作するようにしたいと思う。

ありがとうございました。

+0

これらの例は100%正確ですか?あなたがオブジェクトリテラル(例えば、{x: 'x'、y: 'y'、})のメンバリストに後続のカンマを追加すると、ほとんどのブラウザがフォールトトレラントなので、私は尋ねています。構文エラー。多分それは何が起こっているのですか? –

+0

私はちょうど[this fiddle](http://jsfiddle.net/sBDXa/)を使ってテストしました。IE9にはうまく動作します(IE8はインストールされていません)。 –

+0

完全に正確で、これはテストページからの直接コピー/ペーストでした。私はデバッグして、jQueryにトレースされてスタックされていて、たとえサーバーがリクエストを受け取らなくても、レスポンスコードは200として出てきます。 – newcube

答えて

0

奇妙なキャッシングの問題だったようです。私はキャッシュを追加しました:ajax呼び出しにfalseがあり、すべて動作しています。奇妙な

関連する問題