jsonp 是前端一種用來解決網站跨域的技術,利用script標簽不受同源策略影響的特性引入一個非同源的js文件,並定義一個回調函數來接收數據,這樣就可以實現跨域獲取數據了,例如: 現在有一個鏈接返回的數據是這樣的: cb({ "name": "swk", "age": 18 }) 這是一個標準的j ...
jsonp 是前端一種用來解決網站跨域的技術,利用script標簽不受同源策略影響的特性引入一個非同源的js文件,並定義一個回調函數來接收數據,這樣就可以實現跨域獲取數據了,例如:
現在有一個鏈接返回的數據是這樣的:
cb({
"name": "swk",
"age": 18
})
這是一個標準的jsonp格式,它通過調用函數cb來傳遞數據,那麼我們只需要定義一個函數cb來接收數據就可以了,例如:
function cb(data) {
console.log(data); //{ name: "swk", age: 18 }
}
那麼我們只需要在頁面中引入這個js文件就可以了,例如:
<script src="xxx.xxx?callback=cb"></script>
這樣就可以實現跨域獲取數據了,但是這種方式有一個缺點,就是只能通過get方式來傳遞數據,例如:
<script src="xxx.xxx?callback=cb&name=swk&age=18"></script>
這樣就可以傳遞數據了,
除此之外,我們還可以使用jQuery中ajax的jsonp方式來傳遞數據,例如:
$.ajax({
url: 'xxx.xxx',
dataType: 'jsonp',
jsonp: 'callback',
data: {
name: 'swk',
age: 18
},
success: function (data) {
console.log(data);
}
})
jsonp參數需要填寫的是伺服器返回的函數名的參數名,例如:我們傳遞的參數中callback=cb,那麼這裡就需要填寫cb
本文來自博客園,作者:'Radio',轉載請註明原文鏈接:https://www.cnblogs.com/primice/p/17384564.html