2011-01-14 16 views
5

IE8で問題が発生しています。わかりやすくするために簡略化され、次のコードは、全く動作しません:Jquery .get()がInternet Explorerで動作しない

alert('before get'); 

$.get(getActivityURL('ActionName',{ 
    ts: new Date().getTime(), ...other params...}), 
{cache:false;}, 
    function (xml) { 
    alert("in get callback"); 
},'xml'); // End $.get() 

alert('in after get'); 

getActivityUrl()リクエストパラメータで有効なURLを出力します。

これはFFとChromeで正しく動作します。しかし、IE8では、これは$ .get()コールバックにさえ入っていません。 「前」と「後」のアラートは表示されますが、「中」のアラートは表示されず、実際には何も起こらず、リクエストは送信されません。私は本当にここで何を考えるべきか分からない。

応答ヘッダーは、FFで確認された「Content-Type:application/xml; charset:iso-8859-1」です。

EDIT:$ .post()も機能しません。

+0

ビットを逃したものではなく、完全な関数呼び出しを提供できますか?現在のコードはどのブラウザーでも動作しません。 – lonesomeday

+0

この正確なコードはIE8を保存するすべてのブラウザで動作します。 「getActivityUrl(...)」は有効なURLを返します。 – Alessandro

答えて

0
$J.get(getActivityURL('ActionName' 

// End $.get() 

これは間違いありませんか?私は$ Jを意味します...あなたは複数のJSフレームワークを使用していますか?

+0

それからすべてのブラウザにエラーがスローされます。 – rahul

+0

ええ、忘れてしまったことは、アプリケーション全体で「矛盾していない」ことです。とにかく、私はちょうど質問を編集しました。 – Alessandro

0

uは、試してみました:

$.ajax({ 
    url: getActivityURL('ActionName',{ts: new Date().getTime(), ...other params...}), 
    data: data, 
    success: function (xml) { 
       alert("in get callback"); 
      }, 
    dataType: 'xml' 
}); 

だけの推測

EDIT:

を、私はこれをチェックアウト、あなたを助けるかもしれない興味深いスレッドを発見した:

jQuery issue in Internet Explorer 8

+0

前と同じですが、変更はありません(「GET」も含まれています)。まだそれは他のすべてのブラウザで動作しますが、エフェクトではありませんIE – Alessandro

+0

ie6と7で動作しますか?またはすべてのIEでdoesnt? –

+0

ねえ、私は投稿を編集し、私が追加したリンクをチェック! –

1

問題があるかどうかはわかりませんが、試してみてください削除する ";" {キャッシュ:偽}で

IEは、例えば 、{}内の任意の追加的なものを好きではない{:、B:B、C:C、} IE

+0

ありがとう、またそれを試みたが、運がない。 – Alessandro

1

でFFで動作しなくなりますIEにはキャッシュの問題があると思います。それはキャッシュからの代わりに要求を焼成するデータが得られますので、IEは前回と同じ要求を認識しますので

だから "&mathRandom="+Math.random(); のような終わり Math.random()、1以上のパラメータを追加します。

+0

これはIE9で私のために働いた。 –

13

IEはキャッシュには不名誉です。したがって、キャッシュされた結果が得られていないことを確認する必要があります。

ajaxStartメソッドでcacheプロパティの値をfalseに設定することで、グローバルにキャッシュを無効にすることができます。

$.ajaxSetup({ 
    cache: false 
}); 

それとも、特定のAJAX呼び出しにキャッシュされた結果を排除したい場合は、URLの末尾に固有の番号を追加します。あなたは

$.get("someurl.php?" + $.now() ,function(result) { 
    // do something with result 
}); 

$.now()方法現在の時刻を表す数値を返す固有の番号を取得するには$.now()の方法を使用することができます。

+3

これは私の人生を保存しました、ありがとう! –

+2

それは!!!ありがとう!! –

関連する問題