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請求 如果兩個頁面擁有相同的協議 網域名稱和埠號,那麼這...