美文网首页
jsonp原理与实现

jsonp原理与实现

作者: 超鸽带你飞 | 来源:发表于2018-11-20 15:44 被阅读18次

    原理

    jsonp的本质是利用script标签的src属性进行跨域请求,只能用于get请求。

    前端jquery实现

    使用jquery的 .get.getJson .ajax 进行jsonp请求,使用.ajax方法如下:

    1. <script type="text/javascript">    
    2.     $.ajax({    
    3.         url:"http://crossdomain.com/services.php",    
    4.         dataType:'jsonp',    
    5.         data:'',    
    6.         jsonp:'callback',    
    7.         success:function(result) {    
    8.             for(var i in result) {    
    9.                 alert(i+":"+result[i]);//循环输出a:1,b:2,etc.    
    10.             }    
    11.         },    
    12.         timeout:3000    
    13.     });    
    14. </script>   
    

    必须指定参数:
    dataType : 'jsonp'
    jsonp : 'callback'
    这里的jsonp参数可以随便改,但是后台需原样返回。
    此时的success回调函数相当于原生js中script内部定义好的回调函数。
    与一般的返回json字符串不同,jsonp返回的是一个函数调用,如果指定的callback=jsonpCallback,那么后台返回的是 'jsonpCallback(data)'

    php后台可以写一个通用的方法处理jsonp返回:

    1. function api_jsonp_encode($json)  
    2. {  
    3.         if (!empty($_GET['callbak'])) {  
    4.             return $_GET['callbak'] . '(' . $json . ')'; // jsonp  
    5.         }  
    6.         return $json; // json  
    7. }  
    

    相关文章

      网友评论

          本文标题:jsonp原理与实现

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