CORS實現原理

1.簡介

CORS,跨域資源共享,需要瀏覽器和服務器同時支持,基本思想爲使用自定義的HTTP頭部讓瀏覽器和服務器通信

2.分類

瀏覽器將CORS分爲兩類:

  • 簡單請求
    HEAD,GET,POST,
    HTTP頭部信息不超出幾個字段
  • 非簡單請求
  • HEAD請求
    只請求頁面的首部,可以判斷一個資源是否存在

3.簡單請求

瀏覽器直接發出CORS請求,在頭信息中添加一個Origin字段,用來說明請求來自哪個源,服務器根據這個值,決定是否同意這次請求

  • 如果服務器不許可,則返回的信息中不會包含Access-Control-Allow-Origin字段,這個錯誤需要onerror捕獲,返回的狀態碼可能爲200
  • 如果服務器許可,則服務器返回的響應中會多出Access-Control-字段
  • CORS默認不發送cookie,需要發送cookies,則需要服務器指定Access-Control-Allow-Credentials字段,需要在ajax請求中打開withCredentials屬性

4.非簡單請求

請求方法是PUT或DELETE,Content-Type字段類型是application/json

會在正式通信前,增加一次OPTIONS查詢請求,預檢請求

詢問服務器,網頁所在域名是否在服務器的許可名單中,以及可以使用那些HTTP動詞和頭信息字段,只有得到肯定答覆,瀏覽器纔會發出正式XMLHTTPRequest請求,否則會報錯

服務器通過預檢請求,以後每次瀏覽器正常CORS請求,都會和簡單請求一樣,會有一個Origin字段,服務器的迴應也會有yieldAccess-Control-Allow-Origin頭信息字段



作者:星月西
鏈接:https://www.jianshu.com/p/af02bc9c1b2b
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章