1

我在我的React應用程序IE11上遇到了問題,其中UI沒有爲每個新請求創建後端服務,並從緩存數據返回響應。該應用程序在Chrome上運行良好。ReactJS:IE11沒有使用緩存數據發出新的HTTP請求

在IE的情況下,服務結束與代碼:304,而不是200 PFB請求頭:

Accept application/json,*/* 
Request GET /services/v0/search/?uid=12900 HTTP/1.1 
Content-Type application/json 
Cache-Control no-cache 

PFB響應頭上0​​獲得:

Response HTTP/1.1 304 Not Modified 
x-frame-options DENY 
x-xss-protection 1; mode=block 
x-content-type-options nosniff 

任何線索,什麼可能是IE渲染這種行爲背後的原因? TIA

回答

3

您可以嘗試添加「Pragma」標頭:

headers: { Pragma: 'no-cache'} 

也在這裏提到:Axios only called once inside self-invoking function (Internet Explorer)

+0

非常感謝,它的工作。然而,我閱讀文檔並發現編譯指示僅適用於HTTP 1.0客戶端,但根據我的請求標頭,我在HTTP 1.1上。那麼爲什麼我需要使用Pragma,Cache-control應該可以工作。 –

+0

@Manu我相信服務器沒有正確處理緩存控制。這可能是你的問題。使用編譯指示基本上是相同的(從客戶的角度來看),因爲它被用作後備。你可以在這裏閱讀更多,這是我從它得到:https://stackoverflow.com/questions/10314174/difference-between-pragma-and-cache-control-headers –

1

docs

入住這頭在你的http請求:

的Cache-Control:

no-cache: 強制緩存將請求提交到源服務器進行驗證釋放之前緩存副本

no-store: 緩存壽命ld不存儲有關客戶端請求或服務器響應的任何內容。

must-revalidateRevalidation and reloading):

緩存必須驗證陳舊資源的狀態在使用前和過期的結果不應該被用來

Expires: 0 -the資源已經過期

+0

嗨,添加頭('緩存控制','無緩存,無存儲')我的請求,但它仍然使用緩存! –

+0

請分享請求和回覆標題 –

+0

問題更新! –