1. 程式人生 > >跨域資源共享(Cross-Origin Resource Sharing)

跨域資源共享(Cross-Origin Resource Sharing)

一個 目標 不同域 客戶 con 放棄 設置 資源 之間

跨域資源共享
疑問一:為什麽要有跨域資源共享?

因為CSP同源策略的存在,導致AJAX無法跨域讀取、寫入資源,為了解決跨域分享資源的問題,提出了CORS,用來在不同域之間進行資源共享。但是,CORS僅僅適用於跨域發送數據,而且是從客戶端發送到服務器端。

目標域:被跨域訪問的那個域。
發送域:存儲AJAX,需要訪問目標域的那個域。

CORS的實現,需要目標域的服務器端設置響應的HTTP頭

Allow-Control-Allow-Origin:https://xxxx.com     #表示運行https://xxxx.com域中的AJAX腳本發送資源過來

默認情況下,AJAX跨域不能發送目標域的cookie,除非目標域設置請求頭:Access-control-Allow-Credentials: true
當目標域設置了上述的請求頭之後,跨域發送數據時將會帶上目標域的cookie,可實現登陸之後的操作。很完美的應用於AJAX實現的CSRF中。但是,如果設置了上述請求頭,則Allow-Control-Allow-Origin的值必須為一個確定的值。

所以,如果目標域允許跨域,且Allow-Control-Allow-Origin的值為*,就可以直接放棄了。

跨域資源共享(Cross-Origin Resource Sharing)