您好,登錄后才能下訂單哦!
本篇內容介紹了“什么是Cookie跨域與CORS協議”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
正常的Cookie只能在一個應用中共享,即一個Cookie只能由創建它的應用獲得。 實現Cookie的跨域 ,主要是為了統一應用平臺,實現類似單點登錄的需求。
什么是跨域?
所謂跨域,意思就是跨過了瀏覽器的同源策略。
同源指的是三個相同:
協議相同
域名相同
端口相同
違反同源策略會有以下限制:
Cookie、LocalStorage、IndexDB無法獲取
DOM無法獲得
AJAX請求不能發送
CORS解決跨域
什么是CORS?
2014年W3C發布了 CORS Recommendation 使資源共享變得更方便,默認情況下,瀏覽器對跨域請求不會攜帶Cookie,但鑒于Cookie在身份驗證等方面的重要性,CORS推薦使用額外的響應頭字段來允許跨域發送Cookie,因此,CORS本質是W3C指定的一套規范,主流瀏覽器通過查看服務端返回的協議頭,來確定是否準許跨域攜帶Cookie。
實現CORS
實現CORS通信的關鍵是服務器。只要服務器實現了CORS接口,就可以實現跨域通信。
其主要涉及以下協議頭:
Access-Control-Allow-Origin:*,<Origin>
該字段是必需的,它的值要么是請求時Origin字段的值,要么是一個 * ,表示接受任意域名的請求
Access-Control-Allow-Credentials:true
該字段可選,它的值是一個布爾值,表示是否允許發送Cookie。默認情況下Cookie,Cookie不包括在CORS請求中。設為 TRUE ,即表示服務器明確許可,Cookie可以包含在請求中。
Access-Control-Expose-Headers:<header-name>,<header-name> ,….
默認情況下,只有七種 simple response headers (簡單響應首部)可以暴露給外部:Cache-Control,Content-Language,Content-Length,Content-Type,Expires,Last-Modified,Pragma。如果想要讓客戶端可以訪問到其他的首部信息,可以將它們在 Access-Control-Expose-Headers 里面列出來。
Access-Control-Request-Method:<method> ,<method> …
該字段是必需的,響應首部 Access-Control-Allow-Methods,明確了客戶端所要訪問的資源允許使用的方法或方法列表。
Access-Control-Request-Headers:<header-name>,<header-name> ,….
請求頭 Access-Control-Request-Headers 用于通知服務器在真正的請求中會采用哪些請求頭。
Access-Control-Allow-Headers:<header-name>,<header-name> ,….
該字段是必需的,允許哪些請求頭可以跨域
“什么是Cookie跨域與CORS協議”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。