JavaScript跨域的原因是:瀏覽器同源策略限制,目前網域的js只能讀取同域下的視窗屬性,所以產生跨域。同源策略就是瀏覽器為了確保使用者資訊的安全,防止惡意的網站竊取數據,禁止不同網域之間的JS進行互動。
如何快速入門VUE3.0:進入學習
本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。
跨域問題是瀏覽器同源策略限制,目前網域的js只能讀取同域下的視窗屬性。
出於瀏覽器的同源策略限制。同源策略是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說Web是建構在同源策略基礎上的。瀏覽器只是針對同源策略的一種實作。同源策略會阻止一個網域的javascript腳本和另一個網域的內容進行互動。所謂同源(即指在同一個網域)就是兩個頁面具有相同的協定(protocol),主機(host)和連接埠號碼(port)。
簡單來講同源策略就是瀏覽器為了確保用戶資訊的安全,防止惡意的網站竊取數據,禁止不同網域之間的JS進行互動。對於瀏覽器而言只要網域、協定、連接埠其中一個不同就會引發同源策略,從而限制他們之間如下的互動行為:
1.Cookie、LocalStorage和IndexDB無法讀取;
2. DOM 無法取得;
3. AJAX請求不能發送。
跨域的嚴格一點的定義是:只要協議,域名,端口有任何一個的不同,就被當作是跨域。
跨域的解決方案
JSONP:需要在請求方法裡加上dataType:“jsonp”, //資料格式設定為jsonp,jsonp:“callback”, //Jquery產生驗證參數的名稱
1、dataType,該參數必須設定成jsonp
2、jsonp,此參數的值需要與伺服器端約定
nginx反向代理
webpack 配置反向代理:直接使用腳手架的devServer去配置反向代理來解決開發過程中的跨域問題
跨域資源共享(CORS )
nodejs跨域:在本地用nodejs起一個伺服器透過那個伺服器去呼叫後台的伺服器回傳資料後再回傳給前端伺服器之間不存在跨網域
WebSocket協定跨網域
透過JSONP
自己理解:JSONP就是使用script標籤的src屬性來實現跨域,只能使用get請求,後台會回傳給你一個方法,你透過這個方法取得你想要的資料
jsonp原理前端定義好方法透過src屬性傳給後端後端拿到方法後傳入資料拼接方法後傳給前端前端當成方法來呼叫
JSONP主要是封裝好的請求方式添加callback,這個callback是由前後端約定好的
相關推薦:javascript學習教程
以上就是javascript跨域的原因是什麼的詳細內容,更多請關注php中文網其它相關文章!