2017-01-30 8 views
0

シナリオは、そのユーザーはいくつかのポイントを持っていると言うことができる10点。だからボタンをクリックした後、彼/彼女がそれを消費したときにユーザのポイントを更新するサーバにajax getコールを送ります。したがって、サーバーはInternet Explorerを除くすべてのブラウザーで動作している9を送信する必要があります。検索した後、私はIEがリクエストをキャッシュしていないことに気付きました。この問題を解決するには?インターネットエクスプローラがAJAXリクエストをangular2でキャッシュするのを防ぐ方法、typescript?

前もって太もも!

答えて

3

サーバーコードを制御できる場合は、キャッシュを許可しない適切なヘッダーを設定する必要があります。

あなたが設定することができ、ヘッダー

Cache-Control: no-cache 
Expires: -1 
1

可能な方法は、HTTPインターセプタを実装し、URLを含む要求がすでに実行されている場合にタイムスタンプを追加することです。

@Injectable() 
export class CustomHttp extends Http { 
    urls: {string:string} = {}; 

    get(url: string, options?: RequestOptionsArgs): Observable<Response> { 
    if (this.urls[url]) { 
     options = options || {}; 
     options.search = options.search || new URLSearchParams(); 
     options.search.set('timestamp', (new Date()).getTime()); 
    } 

    return super.get(url, options).do(() => { 
     this.urls[url] = true; 
    }); 
    } 
} 
関連する問題