jsonp

2018-11-06  本文已影响0人  小帅_Cs

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

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

上一篇下一篇

猜你喜欢

热点阅读