情景是用戶有一些點可以說10分。所以點擊按鈕後,ajax會將呼叫發送到服務器,以便在用戶使用它時更新用戶的點數。所以,服務器應該發送9在除Internet Explorer之外的所有瀏覽器上工作。搜索後,我發現IE甚至沒有提出請求緩存該請求。如何解決這個問題?如何防止Internet Explorer在angular2,typescript中緩存ajax請求?
Thanx提前!
情景是用戶有一些點可以說10分。所以點擊按鈕後,ajax會將呼叫發送到服務器,以便在用戶使用它時更新用戶的點數。所以,服務器應該發送9在除Internet Explorer之外的所有瀏覽器上工作。搜索後,我發現IE甚至沒有提出請求緩存該請求。如何解決這個問題?如何防止Internet Explorer在angular2,typescript中緩存ajax請求?
Thanx提前!
如果您控制了服務器代碼,則應該設置不允許緩存的相應標頭。
您可以設置標題
Cache-Control: no-cache
Expires: -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;
});
}
}