首頁  >  文章  >  web前端  >  javascript跨域的原因是什麼

javascript跨域的原因是什麼

WBOY
WBOY原創
2022-03-24 17:10:112439瀏覽

JavaScript跨域的原因是:瀏覽器同源策略限制,目前網域的js只能讀取同域下的視窗屬性,所以產生跨域。同源策略就是瀏覽器為了確保使用者資訊的安全,防止惡意的網站竊取數據,禁止不同網域之間的JS進行互動。

javascript跨域的原因是什麼

本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript跨域的原因是什麼

跨域問題是瀏覽器同源策略限制,目前網域的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn