小編給大家分享一下jsonp進(jìn)行跨域獲取數(shù)據(jù)的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)2013年至今,先為烏拉特中等服務(wù)建站,烏拉特中等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為烏拉特中企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
jsonp跨域獲取數(shù)據(jù)小解
由于瀏覽器有同源策略,所以要想獲取非同源(協(xié)議,域名,端口三者有一不同都算非同源)的頁面的數(shù)據(jù),就得進(jìn)行跨域
(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>看完了這篇文章,相信你對jsonp進(jìn)行跨域獲取數(shù)據(jù)的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章名稱:jsonp進(jìn)行跨域獲取數(shù)據(jù)的方法
本文URL:http://www.chinadenli.net/article36/gidcpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、面包屑導(dǎo)航、品牌網(wǎng)站制作、手機網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)