一、跨域CORS是什么

當(dāng)一個(gè)資源從與該資源本身所在的服務(wù)器的域或端口不同的域或不同的端口請求一個(gè)資源時(shí),瀏覽器會(huì)發(fā)起一個(gè)跨域 HTTP 請求。出于安全考慮,瀏覽器會(huì)限制從腳本內(nèi)發(fā)起的跨域HTTP請求或者攔截了服務(wù)器返回內(nèi)容。例如,XMLHttpRequest 和 Fetch 遵循同源策略。因此,使用 XMLHttpRequest或 Fetch 的Web應(yīng)用程序只能將HTTP請求發(fā)送到其自己的域;這種安全機(jī)制是為避免出現(xiàn)類似CSRF 跨站攻擊等問題。

 

二、實(shí)現(xiàn)CORS

根據(jù)CORS的定義和W3C相關(guān)規(guī)范,明白了跨域的關(guān)鍵問題是在于服務(wù)端是否允許;而服務(wù)端是通過W3C所規(guī)定的相關(guān)CORS heades來實(shí)現(xiàn)的;相關(guān)headers如下:

Access-Control-Allow-Origin:*

該字段是必須的。它的值要么是請求時(shí)Origin字段的值,要么是一個(gè)*,表示接受任意域名的請求。

 

Access-Control-Allow-Methods: POST, GET, OPTIONS

該字段可選。表明服務(wù)器允許客戶端使用 POST, GET 和 OPTIONS

 

Access-Control-Allow-Headers: X-PINGOTHER, Content-Type

該字段可選。表明服務(wù)器允許請求中攜帶字段 X-PINGOTHER 與 Content-Type。

 

Access-Control-Max-Age: 86400

表明該響應(yīng)的有效時(shí)間為 86400 秒,也就是 24 小時(shí)。在有效時(shí)間內(nèi),瀏覽器無須為同一請求再次發(fā)起預(yù)檢請求。

 

Access-Control-Allow-Credentials: true

該字段可選。它的值是一個(gè)布爾值,表示是否允許發(fā)送Cookie。

 

跨域相關(guān)規(guī)范可以照文檔:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

 

三、WCF restful實(shí)現(xiàn)CORS

1.

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn) View Code

2.

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn) View Code

 

3.在所要公開的服務(wù)類上面[CORS],例如:

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式