最近在專案開發中碰到這樣乙個問題,剛登入完用 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...