跨域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的。 所以, 你依舊無法使使用它.

最多是訪問到它。即使你設置了cors!所以很多時候你能訪問到cookie,即使在客戶端做了修改它也不會改變,他的CRUD只能由 server控制.

 

 

  • 最后建議

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

另一方面cookie很多時候都是硬需求,還是老老實實的設置可訪問的域,這樣才能靈活使用cookie


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM