1. ホーム
  2. ジャバスクリプト

[解決済み】Angular IE の $http のキャッシュの問題

2022-04-01 01:19:45

質問

IEから送信されたすべてのajaxコールはAngularによってキャッシュされ、その際 304 response を使用します。リクエストは同じでも、私の場合、レスポンスは同じにはなりません。このキャッシュを無効にしたいのです。私は cache attribute を$http.getに追加しましたが、それでも解決しませんでした。どうしたらこの問題を解決できるでしょうか?

解決方法は?

GETリクエストごとにキャッシュを無効にするのではなく、$httpProviderでグローバルに無効にしています。

myModule.config(['$httpProvider', function($httpProvider) {
    //initialize get if not there
    if (!$httpProvider.defaults.headers.get) {
        $httpProvider.defaults.headers.get = {};    
    }    

    // Answer edited to include suggestions from comments
    // because previous version of code introduced browser-related errors

    //disable IE ajax request caching
    $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';
    // extra
    $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
    $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
}]);