cross-origin resource sharing (cors) 跨域資源共享,是一種使用額外http首部實現跨域獲取資源許可權的機制。
xmlhttprequest獲取非同源資源會被瀏覽器攔截。
cors分類:
1、簡單請求
2、預檢請求
簡單請求:
1、使用下列方法之一:
get post head
2、content-type值為下列之一:
text/plain
multipart/form-data
等……除了正常發起請求外,若想實現cors跨域,還需要伺服器配置正確的響應首部。否則無法獲取
access-contral-allow-origin: *(localhost) 訪問控制允許源
預檢請求:
「需預檢的請求」要求必須首先使用 options 方法發起乙個預檢請求到伺服器,以獲知伺服器是否允許該實際請求。
"預檢請求「的使用,可以避免跨域請求對伺服器的使用者資料產生未預期的影響。
當請求滿足下述任一條件時,即應首先傳送預檢請求:
1、使用非get post head方法
2、content-type值不為下列之一:
text/plain
multipart/form-data
3、人為設定了 cors 安全的首部字段集合之外的首部字段,如人為的寫乙個。
cors 安全的首部字段集合:https://
fetch.spec.whatwg.org/#
cors-safelisted-request-header
發起post請求,人為設定了x-user:aimee欄位,則需要預檢請求。
要求伺服器設定正確字段。
access-control-allow-origin: *
access-control-allow-methods: post, get, options//了實際請求所允許使用的 http 方法
access-control-allow-headers: x-pingother, content-type//請求中允許攜帶的首部字段
access-control-max-age: 86400//請求的結果能夠被快取
其他: 預檢過一次,後面的就不預檢了。
跨域資源共享 CORS
cors需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能。前端 對應於前端請求來說cors通訊與同源的ajax通訊沒有差別,完全一樣。瀏覽器一旦發現ajax請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,但使用者不會有感覺。後端 只要伺服器實現了cors介面,就可以跨源通...
跨域資源共享 CORS
跨域資源共享 cross origin resource sharing 是一種機制,它使用額外的 http 頭部告訴瀏覽器可以讓乙個web應用進行跨域資源請求。若乙個請求同時滿足下述所有條件,則該請求可視為 簡單請求 注 灰色字型內容了解即可 手動設定的頭部字段只能是 注意 也可以設定 forbi...
CORS 跨域資源共享
foreword cors principle 三個訪問控制場景 簡單請求 預請求帶憑據的請求 http請求頭 http響應頭 ie對cors的實現 瀏覽器的支援 由於同源策略限制從乙個源載入的文件或指令碼與來自另乙個源的資源進行互動。在web開發中跨域是難免的問題,或是開發時的跨域,或是線上資源請...