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

2022-04-13 07:56:26 字數 1490 閱讀 9228

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

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

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

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

使用jsonp解決同源限制問題

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

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

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

const data='fn()';

res.send(data);

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

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

3000埠下的html檔案:

3001埠的伺服器:

1 const express=require('express')

2 const path=require('path')56

//8const result='fn()';

9res.send(result);

10})

1113 console.log("伺服器啟動成功,埠號為3001")

執行結果:

js學習總結 同源與非同源 jsonp

jsonp和ajax相同,都是客戶端向伺服器端傳送請求 給伺服器端傳遞內容 或者 從服務端獲取資料 ajax屬於同源策略 jsonp屬於非同源策略 跨域請求 實現跨域請求的方式有很多種,只不過jsonp是最常用的 區分同源和非同源 當前頁面的位址 資料請求的介面位址 1 協議 2 網域名稱或者ip ...

使用JSONP解決同源限制問題

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

使用JSONP解決同源限制問題

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