您好,登錄后才能下訂單哦!
這篇文章主要介紹“javascript為什么要跨域”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“javascript為什么要跨域”文章能幫助大家解決問題。
JavaScript跨域的原因是:瀏覽器同源策略限制,當前域名的js只能讀取同域下的窗口屬性,所以產生跨域。同源策略就是瀏覽器為了保證用戶信息的安全,防止惡意的網站竊取數據,禁止不同域之間的JS進行交互。
本教程操作環境: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為什么要跨域”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。