跨域解決方案CORS

CORS 需要瀏覽器和後端同時支持。IE 8 和 9 需要通過 XDomainRequest 來實現。

瀏覽器會自動進行 CORS 通信,實現 CORS 通信的關鍵是後端。只要後端實現了 CORS,就實現了跨域。

服務端設置 Access-Control-Allow-Origin 就可以開啓 CORS。 該屬性表示哪些域名可以訪問資源,如果設置通配符則表示所有網站都可以訪問資源。

雖然設置 CORS 和前端沒什麼關係,但是通過這種方式解決跨域問題的話,會在發送請求時出現兩種情況,分別爲簡單請求和複雜請求。

1、 簡單請求

只要同時滿足以下兩大條件,就屬於簡單請求

1.使用下列方法之一:
GET
HEAD
POST
2.Content-Type 的值僅限於下列三者之一:
text/plain
multipart/form-data
application/x-www-form-urlencoded
請求中的任意 XMLHttpRequestUpload 對象均沒有註冊任何事件監聽器; XMLHttpRequestUpload 對象可以使用 XMLHttpRequest.upload 屬性訪問。

2、 複雜請求

不符合以上條件的請求就肯定是複雜請求了。
複雜請求的CORS請求,會在正式通信之前,增加一次HTTP查詢請求,稱爲"預檢"請求,該請求是 option 方法的,通過該請求來知道服務端是否允許跨域請求。

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