Axios無法在Safari瀏覽器及微信中開啟

2021-09-26 23:59:33 字數 1307 閱讀 8784

最近在專案開發中碰到這樣乙個問題,剛登入完用 axios 調訂單列表介面時,總是提示 token 過期失效。仔細想想,剛登入的返回的 token 都沒存在 window.document.cookie 中,怎麼會過期呢。經過沿路抽絲剝繭,debugger,列印出來的 token 依然是最新的返回,這使得我不禁陷入了沉思 ????‍♂️,為啥?

// list

getlist()

, withcredentials:

true

, params:})

.then

(res =>).

catch

(err =>);

},

這**看起來沒啥問題啊,為啥在safari瀏覽器就不行了呢?

於是。。

// list

getlist()

?nocache=$`

,,withcredentials:

true

, params:})

.then

(res =>).

catch

(err =>);

},

// list

getlist()

, withcredentials:

true

, params:})

.then

(res =>).

catch

(err =>);

},

這樣一來的話就給介面新增了乙個引數,而且這引數與上一次的又不一樣,所以就不會存在快取這一說了。

~據說是某些瀏覽器請求介面的時候,引數未變,瀏覽器不會發起新的請求,就用舊的資料去請求,而請求頭headers存放在cookie裡;故而沒有更新cookie裡的token。

~【注釋1】

pragma 是乙個在 http/1.0 中規定的通用首部,這個首部的效果依賴於不同的實現,所以在「請求-響應」鏈中可能會有不同的效果。它用來向後相容只支援 http/1.0 協議的快取伺服器,那時候 http/1.1 協議中的 cache-control 還沒有出來。

~【注釋2】

cache-control 通用訊息頭欄位,被用於在http請求和響應中,通過指定指令來實現快取機制。快取指令是單向的,這意味著在請求中設定的指令,不一定被包含在響應中。

~總的來說是換的原因。相信還有別的方法可以解決這個問題

headers/pragma

headers/cache-control

解決safari無法禁止縮放問題

meta標籤上禁止縮放可以禁止絕大部分瀏覽器。viewport content width device width,initial scale 1.0,user scalable 0,minimum scale 1.0,maximum scale 1.0 自從safari出了手勢事件的時候,上面就...

axios請求無法攜帶cookie

背景 最近在用vue重構公司公司angularjs 1.x專案,老專案身份認證採用的cookie,前端ajax庫採用是angularjs的 http resource服務,新版採用的是axios,但是發現前端http響應頭中少了set cookie屬性,同時在瀏覽器中查詢不到cookie資訊,服務端...

在windows下除錯safari的網頁

ios webkit debug proxy 是乙個從usb到websocket的 允許開發者實時的向手機端safari和uiwebviews傳送命令。在powershell中執行invoke expression new object system.net.webclient downloadst...