jsonp跨域獲取數(shù)據(jù)的基礎(chǔ)教程
前言
由于瀏覽器有同源策略,所以要想獲取非同源(協(xié)議,域名,端口三者有一不同都算非同源)的頁面的數(shù)據(jù),就得進行跨域
(1) jsonp原理
由于script標(biāo)簽的src屬性可以訪問非同源的js腳本,所以通過src屬性訪問服務(wù)器會返回函數(shù)的js代碼,而我們想要的數(shù)據(jù)就作為函數(shù)參數(shù)返回,而我們會先定義這個函數(shù),返回的js代碼就可執(zhí)行
(2) jsonp實現(xiàn)代碼
請求頁面
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function jsonp(data){
console.log(username)
}
</script>
<script type="text/javascript" src="jquery-1.8.3.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
var url = "http://www.example.com/jsonp.php?callback=jsonp";
var script = $('<script><\/script>');
script.attr("src",url);
$("body").append(script);
});
</script>
</body>
</html>
<?php
$data = {'name': '張三'};
$callback = $_GET['callback'];
echo $callback."(".json_encode($data).")";
?php>
之后php會返回
jsonp({
name:'niuni
})
然后PHP返回的代碼h會被請求頁面的jsonp方法執(zhí)行
(3)jQuery的簡便jsonp跨域
<script>
function showData (data) {
console.info(data);
}
$(document).ready(function () {
$("#btn").click(function () {
$.ajax({
url: "http://www.example.comjsonp",
type: "GET",
dataType: "jsonp",// 返回數(shù)據(jù)類型
jsonpCallback: "showData",//回調(diào)函數(shù)
// 獲取數(shù)據(jù)成功就執(zhí)行success函數(shù)
success: function (data) {
console.info("data");
}
});
});
});
</script>
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
JS學(xué)習(xí)筆記之貪吃蛇小游戲demo實例詳解
這篇文章主要介紹了JS學(xué)習(xí)筆記之貪吃蛇小游戲demo,結(jié)合實例形式詳細分析了javascript實現(xiàn)貪吃蛇小游戲的原理、步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-05-05
微信小程序?qū)崿F(xiàn)動態(tài)設(shè)置頁面標(biāo)題的方法【附源碼下載】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)動態(tài)設(shè)置頁面標(biāo)題的方法,涉及微信小程序button組件事件綁定及頁面元素屬性動態(tài)設(shè)置相關(guān)實現(xiàn)技巧,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下2017-11-11
詳解JavaScript數(shù)據(jù)類型和判斷方法
這篇文章主要介紹了JavaScript數(shù)據(jù)類型和判斷方法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下2020-09-09
javascript 中設(shè)置window.location.href跳轉(zhuǎn)無效問題解決辦法
這篇文章主要介紹了javascript 中設(shè)置window.location.href跳轉(zhuǎn)無效問題解決辦法的相關(guān)資料,需要的朋友可以參考下2017-02-02

