jsonp

作者: 小帅_Cs | 来源:发表于2018-11-06 20:36 被阅读0次

    2.下面使用JSONP,将前端代码中的ajax请求去掉,添加了一个script标签,标签的src指向了另一个域www.practice-zhao.com下的remote.js脚本

    <!DOCTYPE html>

    <html>

    <head>

        <title>GoJSONP</title>

    </head>

    <body>

    <script type="text/javascript">

        function jsonhandle(data){

            alert("age:" + data.age + "name:" + data.name);

        }

    </script>

    <script type="text/javascript" src="jquery-1.8.3.min.js">

    </script>

    <script type="text/javascript" src="http://www.practice-zhao.com/remote.js"></script>

    </body>

    </html>

    ----------------------------------------------

    3.将前端代码再进行修改,代码如下:

    <!DOCTYPE html>

    <html>

    <head>

        <title>GoJSONP</title>

    </head>

    <body>

    <script type="text/javascript">

        function jsonhandle(data){

            alert("age:" + data.age + "name:" + data.name);

        }

    </script>

    <script type="text/javascript" src="jquery-1.8.3.min.js">

    </script>

    <script type="text/javascript">

        $(document).ready(function(){

            var url = "http://www.practice-zhao.com/student.php?id=1&callback=jsonhandle";

            var obj = $('<script><\/script>');

            obj.attr("src",url);

            $("body").append(obj);

        });

    </script>

    </body>

    </html>

    ---------------------

    这里动态的添加了一个script标签,src指向跨域的一个php脚本,并且将上面的js函数名作为callback参数传入,那么我们看下PHP代码怎么写的:

    <?php

    $data = array(

        'age' => 20,

        'name' => '张三',

    );

    $callback = $_GET['callback'];

    echo $callback."(".json_encode($data).")";

    return;

    PHP代码返回了一段JS语句,即

    jsonhandle({

        "age" : 15,

        "name": "张三",

    })

    ---------------------

    4.最后jQuery提供了方便使用JSONP的方式,代码如下:

    <!DOCTYPE html>

    <html>

    <head>

        <title>GoJSONP</title>

    </head>

    <body>

    <script type="text/javascript" src="jquery-1.8.3.min.js">

    </script>

    <script type="text/javascript">

        $(document).ready(function(){

            $.ajax({

                type : "get",

                async: false,

                url : "http://www.practice-zhao.com/student.php?id=1",

                dataType: "jsonp",

                jsonp:"callback", //请求php的参数名

                jsonpCallback: "jsonhandle",//要执行的回调函数

                success : function(data) {

                    alert("age:" + data.age + "name:" + data.name);

                }

            });

        });

    </script>

    </body>

    </html>

    ---------------------

    作者:云中的鱼

    来源:CSDN

    原文:https://blog.csdn.net/u011897301/article/details/52679486

    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

          本文标题:jsonp

          本文链接:https://www.haomeiwen.com/subject/rmrpxqtx.html