jQuery.get()IE8/9で動作していません。変更されていないキャッシュページ304をロードしません

StackOverflow https://stackoverflow.com/questions/8903221

質問

コードイグナイターバージョン '2.0.3' jQuery 1.7 jQuery Historyプラグイン

こんにちは、みんな、

私はAjaxの方法で構築したCodeIgniterアプリを持っています。次のような関数があります:

$(document).on('click','.ajax_link',function(e){
    //Stop the normal href action
    e.preventDefault();

    //Grab the destination URL
    var new_url = $(this).attr('href')

    //Grab the content via ajax and pass it to the history change function
    $.get(base_url+new_url,function(data){
        History.pushState({
            content:data.content,
            url:data.url
        }, data.title, data.url);
        //Refresh some site variables
        refresh();
    },'json');
});

Ajax_linkのクラスを使用して、アンカー要素のクリックをキャプチャし、その応答データの配置をページに処理する関数に応答を送信します。

これはChromeとFFで機能します。リンクをクリックします。JQueryはGet Requestを作成し、JSONオブジェクトとhistory.pushState()関数を取り戻します。

私が抱えている問題はIE8です。基本的に何が起こっているのかということです。最初にアプリを開いたとき、リンクは動作しますが、一度だけ動作します。 2回目のリンクをクリックします。

  • ajaxはありますか GET
  • 304の応答を受け取ります(変更されていません)
  • 電話しません jQuery.get() コールバック関数であるため、死んで停止します。

キャッシュをクリアすると、再び機能します。ですから、私の仮定は、IEがgetリクエストを行っているということですが、過去にまったく同じファイルがすでに要求されていることがわかります...そして、プロセスを完全に停止します。

誰かがこれの解決策を知っていますか? IEでのAJAXとキャッシュを使用した304のエラーとエラーについての言及を探していましたが、まだ私と同じ問題を発見していません。

どんな助けも感謝しています

(Windows仮想マシンIE8でテストし、IE 8モードでインターネットエクスプローラー9)

解決した

次のコードをドキュメントに追加する必要がありました。

$.ajaxSetup ({cache: false});

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top