瀏覽器的同源策略:
儲存在瀏覽器中的資料,如localstroage、cookie和indexeddb不能通過指令碼跨域訪問
不能通過指令碼操作不同域下的dom
不能通過ajax請求不同域的資料
同源:協議/網域名稱/埠都一致視為同源;
eg: 呼叫 (非跨域)
呼叫 (主網域名稱不同:abc/def,跨域)
呼叫 (子網域名稱不同:qwe/asd,跨域)
呼叫 (埠不同:8080/8081,跨域)
呼叫 (協議不同:http/https,跨域)
小總結: 兩個路徑中只要有協議,網域名稱,埠任何一方出現不同,就可以視為非同源,相互呼叫屬跨域訪問;
ps:localhost和127.0.0.1雖然都指向本機,但也屬於跨域。
web專案中常見的跨域:
前後端分離,**分別部署在同一伺服器,不同埠,或者不同的伺服器上,前端通過ajax請求伺服器,非同源,不能請求;
解決跨域問題:
常用:利用nginx反向**,解決跨域問題;
只需簡單配置nginx即可:
server
location /
#error_page 500 502 503 504 /50x.html;
location = /50x.html
}看起來活靈活現的舉例:
何謂跨域,以軍營為例,你屬於一營士兵,營地規定(瀏覽器同源策略)不能到別的營地拿東西,看東西,聽東西......等等
但實際生活中,需要一營士兵到別的營地中工作生活很正常,為了不影響規定的存在,在一營的某個房間(nginx >>> proxy),
配置了一台時光機,他可以帶你到想去的地方,假設它在一號營房,那麼只要想到別的營地中,你只要先去一號營房即可,
時光機會帶到你目的地,而對於一營的衛兵來說,你並沒有走出營地,不管你在一號營房帶出來什麼/幹了什麼,都視為是一營的。
更小的總結:
跨域問題的產生是瀏覽器造成的!
AJAX跨域呼叫相關知識 CORS和JSONP
跨域問題產生的原因,是由於瀏覽器的安全機制,js只能訪問與所在頁面同乙個域 相同協議 網域名稱 埠 的內容。但是我們專案開發過程中,經常會遇到在乙個頁面的js 中,需要通過ajax去訪問另乙個伺服器並返回資料,這時候就會受到瀏覽器跨域的安全限制了。這裡要注意,如果只是通過ajax向另乙個伺服器傳送請...
對於ajax跨域請求的一些相關知識
響應頭部access control allow origin 第二個頭部貌似不重要,主要是如果是ajax請求就要設定接收的頭部 route rule index upload index index upload index header access control allow origin h...
ajax相關的小知識
ajax作為非同步資料交換的技術,有重要用途,在使用過程中有其固定的格式。其中 url success,fail 3個引數必須要有 如何建立ajax物件 var oajax new xmlhttprequest ie7之後的瀏覽器可以識別,之前的設定方法為 var oajax new activex...