跨域:一文解釋web跨域,域 是什麼含義

1.跨域的含義:

      既然有人造這個詞,個人還是喜歡先從字面意思去解釋,“跨域”理解跨域不同領域,在我們IT這“域”理解爲領域,平臺,應用,資源,意爲跨域不同的領域,不同的機器,不同的平臺獲取資源。(有些資源不存在跨域,例如靜態資源)

2.產生跨域的條件:

①.xhr請求 (全稱 XMLHttpRequest 是一個與後臺進行數據交互的前端對象,基於Http協議,支持同步和異步請求方式)

②非同源策略,域名+端口+協議(http,https)三者不一致都會產生跨域。

3.解決跨域:

①.設置代理。

②.服務器設置rsp.setHeader("Access-Control-Allow-Origin", "*");

4.跨域爲什麼在數據返回的時候採取判斷是否是同源呢?而不是在請求的時候進行判斷是不是同源?

原因:跨域請求,如果服務端在響應頭中設置了可以跨域權限,則瀏覽器則不是攔截響應數據

附上跨域瀏覽器和服務端交互的原理:

         

①.瀏覽器先根據同源策略對前端頁面和後臺交互地址做匹配,若同源,則直接發送數據請求;若不同源,則發送跨域請求。

②.服務器解析程序收到瀏覽器跨域請求後,根據自身配置返回對應文件頭。若未配置過任何允許跨域,則文件頭裏不包含Access-Control-Allow-origin字段,若配置過域名,則返回Access-Control-Allow-origin+ 對應配置規則裏的域名的方式。

.瀏覽器根據接受到的http文件頭裏的Access-Control-Allow-origin字段做匹配,若無該字段,說明不允許跨域;若有該字段,則對字段內容和當前域名做比對,如果同源,則說明可以跨域,瀏覽器發送該請求;若不同源,則說明該域名不可跨域,不發送請求

 

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