jsonp 是前端一種用來解決網站跨域的技術,利用script標簽不受同源策略影響的特性引入一個非同源的js檔案,并定義一個回呼函式來接收資料,這樣就可以實作跨域獲取資料了,例如:
現在有一個鏈接回傳的資料是這樣的:
cb({
"name": "swk",
"age": 18
})
這是一個標準的jsonp格式,它通過呼叫函式cb來傳遞資料,那么我們只需要定義一個函式cb來接收資料就可以了,例如:
function cb(data) {
console.log(data); //{ name: "swk", age: 18 }
}
那么我們只需要在頁面中引入這個js檔案就可以了,例如:
<script src="https://www.cnblogs.com/primice/archive/2023/05/09/xxx.xxx?callback=cb"></script>
這樣就可以實作跨域獲取資料了,但是這種方式有一個缺點,就是只能通過get方式來傳遞資料,例如:
<script src="https://www.cnblogs.com/primice/archive/2023/05/09/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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/552034.html
標籤:其他
上一篇:JS中記憶體泄漏的幾種情況
下一篇:返回列表
