首页  >  文章  >  web前端  >  jsonp如何进行跨域获取数据?(代码示例)

jsonp如何进行跨域获取数据?(代码示例)

青灯夜游
青灯夜游转载
2019-01-05 10:24:143221浏览

jsonp如何进行跨域获取数据?本篇文章就给大家介绍jsonp进行跨域获取数据的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

jsonp跨域获取数据小解

由于浏览器有同源策略,所以要想获取非同源(协议,域名,端口三者有一不同都算非同源)的页面的数据,就得进行跨域

(1) jsonp原理

由于script标签的src属性可以访问非同源的js脚本,所以通过src属性访问服务器会返回函数的js代码,而我们想要的数据就作为函数参数返回,而我们会先定义这个函数,返回的js代码就可执行

(2) jsonp实现代码

请求页面

76c82f278ac045591c9159d381de2c57
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e
    b2386ffb911b14667cb8f0f91ea547a76e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
8019067d09615e43c7904885b5246f0a
    function jsonp(data){
        console.log(username)
    }
2cacc6d41bbb37262a98f745aa00fbf0
32c428c1a65afb4c21320ec475b9ffe4
2cacc6d41bbb37262a98f745aa00fbf0
8019067d09615e43c7904885b5246f0a
    $(document).ready(function(){
        var url = "http://www.example.com/jsonp.php?callback=jsonp";
        var script = $('3f1c4e4b6b16bbbd69b2ee476dc4f83a053a9cc4c2e9b9f6f911642332d34e85');
        script.attr("src",url);
        $("body").append(script);
    });
2cacc6d41bbb37262a98f745aa00fbf0
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e
7bf6f68ac33b2a6d14a606479bed8015

之后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>

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上是jsonp如何进行跨域获取数据?(代码示例)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:cnblogs.com。如有侵权,请联系admin@php.cn删除