溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jsonp進行跨域獲取數據的方法

發布時間:2020-08-28 10:09:33 來源:億速云 閱讀:179 作者:小新 欄目:web開發

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

jsonp跨域獲取數據小解

由于瀏覽器有同源策略,所以要想獲取非同源(協議,域名,端口三者有一不同都算非同源)的頁面的數據,就得進行跨域

(1) jsonp原理

由于script標簽的src屬性可以訪問非同源的js腳本,所以通過src屬性訪問服務器會返回函數的js代碼,而我們想要的數據就作為函數參數返回,而我們會先定義這個函數,返回的js代碼就可執行

(2) jsonp實現代碼

請求頁面

<!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方法執行

(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",// 返回數據類型
                jsonpCallback: "showData",//回調函數
                // 獲取數據成功就執行success函數
                success: function (data) {
                    console.info("data");
                }
            });
        });
    });
</script>

看完了這篇文章,相信你對jsonp進行跨域獲取數據的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女