使用JSONP解決同源限制問題

2021-10-19 08:31:25 字數 952 閱讀 3682

ajax請求限制

ajax只能向自己的伺服器傳送請求,比如現在有乙個a**,有乙個b**,a**中的html檔案只能向b**中傳送ajax請求,但是a**是不能向b**傳送ajax請求,同理,b**也不能向a**傳送ajax請求。

同源

如果兩個頁面擁有相同的協議,網域名稱和埠,那麼這兩個頁面就屬於同乙個源,其中只要有乙個不相同,就是不同源。

同源政策的目的

同源政策是為了保證使用者資訊的安全,防止惡意**竊取資料,最初的同源政策是指a**在客戶端設定的cookie,b**是不能訪問的。

隨著網際網路發展,同源政策也越來越嚴格,在不同源的情況下,其中有一項規定就是無法向非同源位址傳送ajax請求,如果請求,瀏覽器就會報錯。

jsonp解決同源限制問題

jsonp是json with padding 的縮寫,它不屬於ajax請求,但它可以模擬ajax請求。

1.將不同源的伺服器端請求位址寫在script標籤的src標籤中

'www.example.com'

>

<

/script>

2.伺服器響應資料必須是乙個函式的呼叫,真正要傳送給客戶端的資料需要作為函式呼叫的引數。

const data =

'fn()'

;res.

send

(data)

;

3.在客戶端全域性作用域下定義函式fn

function

fn(data)

4.在fn函式內部對伺服器端返回的資料進行處理

function

fn(data)

使用JSONP解決同源限制問題

ajax只能向自己的伺服器傳送請求 同源 如果兩個頁面擁有相同的協議,埠和網域名稱,那麼這兩個頁面就屬於同乙個源,其中只要乙個不相同,就是不同源 同源政策的目的 為了保證使用者資訊的安全,防止惡意的 竊取資料,最初的同源政策是指a 在客戶端設定的cookie,b 是不能訪問的 使用jsonp解決同源...

jsonp 解決同源機制

可以跨域的ajax 原理 因為script標籤傳送的請求接收的內容會到script標籤內部如 返回值為func 執行結果為 返回值為func 執行結果為 都會報錯。因為func 會被讀取為變數。怎麼樣解決呢?我們可以定義乙個函式的函式名為func 並且 和後端溝通他的返回值為func 這樣就可以執行...

Ajax 使用jsonp向非同源伺服器請求資料

ajax只能向自己的伺服器傳送請求。比如現在有乙個a 有乙個b a 中的html檔案只能向a 伺服器中傳送ajax請求,b 中的html檔案只能向b 中傳送ajax請求,但是a 是不能向b 傳送ajax請求的,同理,b 也不能向a 傳送ajax請求 如果兩個頁面擁有相同的協議 網域名稱和埠號,那麼這...