跨域cors中如何傳遞cookie(前端爲何沒法向後端傳遞cookie?)

  • 沒有跨域

後端server只要在迴應頭部‘set-cookie’,那麼就會有cookie產生並保存在客戶端client。後端

等到client再次向後端server發送請求時瀏覽器的機制就會自動攜帶cookie隨着請求一併發送給後端。跨域

 

  • 跨域

瀏覽器默認狀況下沒法主動跨域向後端發送cookie, 若是你要發送cookie給server的話, 就須要將withCredentials設置爲true了.瀏覽器

可是,server並非隨便就能接受並返回新的cookie給你的。 在server端,還須要設置. Access-Control-Allow-Credentials: true安全

這樣server才能返回新的cookie給你. 可是,這還有一個問題,就是cookie仍是遵循same-origin policy的。 因此, 你依舊沒法使使用它.cookie

最可能是訪問到它。即便你設置了cors!因此不少時候你能訪問到cookie,即便在客戶端作了修改它也不會改變,他的CRUD只能由 server控制.併發

 

 

  • 最後建議

最好不要設置cors,一方面不安全(出於開發時的便捷,你能夠使用一些中間件的代理例如proxyTable,幫你實現請求轉發達到跨域請求的效果)。cors

另外一方面cookie不少時候都是硬需求,仍是老老實實的設置可訪問的域,這樣才能靈活使用cookiespa

相關文章
相關標籤/搜索