2012-02-13 17 views
1

私は今この問題に苦労しており、同様の質問からのアドバイスはまったく役に立たなかった。私はRoRのアプリケーションで$(ドキュメント).readyにAJAX呼び出しを作るしようとすると、オペラ座、ChromeとFirefoxで働いていたInternet Explorer 8はAJAXコールを起動しません

<script type="text/javascript"> 
$(document).ready(function(){ 
    $.get('/render_single_stats/<%[email protected]_params.id%>/'); 
}); 
</script> 

のような単純な$のに.get()で始まった、しかしないでいますIE。 SOの回答を検索した後、私も、この呼び出しで

$(document).ready(function(){ 
    var timestamp = new Date(); 
    $.ajax({type : 'POST', url : '/render_single_stats/<%[email protected]_params.id%>' + '&timestamp=' + timestamp.getTime(), cache : false, contentType : 'application/javascript'}); 

}); 
</script> 

運を試してみました。

他の機能が動作しているので、jQueryライブラリが読み込まれていることは間違いありません。私は最新の「jquery-rails」宝石を使用しています。

私はIE7互換モードを使用して強制しましたが、運はありませんでした。

ほとんどのアドバイスを試した後、私は何かを逃しているのか、間違っているのでしょうか?

EDIT:

は問題は(1.5.2から1.7.1への切り替え)のjQueryの私のバージョンとしなければならなかった、そして私は、IEのために有効であることが私のHTMLを変更しなければならなかったが判明。それを実現する前に、生のhtmlとしてのサーバーレスポンスを段階的にチェックしたところ、jQuery.html()が動作していないように見えて、HTMLの検証が行われたようです。

くそーIE :(

だから、答えをみんなありがとう、しかし、問題はどこかに敷設されたように私は、正しいこれらの答えをマークすることはできません。

+0

あなたは 'ファイルをget'tingが、結果で何もしていない... IEのデバッグに関する –

+0

電源を入れて、あなたが応答@Kolink – Vigrond

+0

を取得し、エラーがないRJSテンプレート、である私たちに教えていますそのこと - 少なくとも他のブラウザでは –

答えて

0

私は、同様のIEでの問題、および問題を抱えていましたIEはajax呼び出しの応答を「キャッチ」しているので、ajax呼び出しを1回だけ実行し、それ以外の時間は最初の元の応答を使用します。 この理論をテストするには、ブラウザを閉じて開きます。 修正基本的にレスポンスをキャッチしないようにIEに指示しています。あなたはajaxレスポンスに次のヘッダを追加することでそれを行うことができます:

response['Cache-Control']='no-store, no-cache, must-revalidate, post-check=0, pre-check=0' 
response['Pragma']='no-cache' 
response['Expires']='Sun, 19 Nov 1978 05:00:00 GMT' 
+0

呼び出しは一度も実行されません。しかし、私はこれらのヘッダーを追加しましたが、まだ運はありません。彼らは渡され、私はチェックした。 –

+0

これはキャッシュでは解決できません:falseまたは単にgetScript()を使用します。これはデフォルトでcache:falseですか? –

+0

まあ、私の場合でも私はキャッシュを持っていた:私のajax呼び出しでfalse、IEはまだコールをキャッチしていたので、私は具体的に私の応答ヘッダーにそれを伝えなければなりません。 私があなたのケースでやることは、すでにそれをやっていないなら、あなたがajax呼び出しを実行しようとしたときにIEがやっているのを見てみることです。 DebugBarというIEにツールをインストールできます。そこには、すべてのHTTP呼び出し、応答、ヘッダーなどが表示され、さらに手がかりを得ることができます。 –

0

あなたはRJSテンプレートを取得しているので、これを試してみる:

$.getScript('/render_single_stats/<%[email protected]_params.id%>/'); 

jQueryのドキュメント、HTTPのGETリクエストを使用してサーバから

$.get()ロードのデータによると。

$.getScript()サーバーからGET HTTPリクエストを使用してJSファイルをロードして実行します。

+0

動作しません。それは要求を送ることさえ気にしません。 –

関連する問題