久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

JSONP的使用(在zepto和kissy下使用)

 ThinkTank_引擎 2016-06-21

一、JSONP是一種較為規(guī)范和通用的解決ajax跨域訪問(wèn)限制的方式

二,、ajax跨域訪問(wèn)限制:基于安全的原因,,瀏覽器采用同源策略,其阻止從一個(gè)源加載的文檔或腳本獲取或設(shè)置另一個(gè)源加載的文檔,;所謂同源要求域名和端口全部一致,,例如 1.example.com 和2.example.com 就非同源,example.com:80 和 example.com:8080 亦非同源,。

三,、jsonp的原理:帶有src屬性標(biāo)簽的跨域資源獲取能力,在jsonp中通常使用<script>標(biāo)簽,,因?yàn)?lt;script>標(biāo)簽獲取的跨域資源可以使用回調(diào)函數(shù)直接處理

jsonp的實(shí)現(xiàn):

前端代碼:

[javascript] view plain copy
在CODE上查看代碼片派生到我的代碼片
  1. <script>  
  2.             function callback(data){  
  3.                 console.log(data);  
  4.             }  
  5.         </script>  
  6.         <script type="text/javascript" src="http://www.remote.com/remote.php?callback=callback"></script>  

后臺(tái)代碼 <www.remote.com/remote.php>

  1. if(isset($_GET["callback"])){  
  2.         $server_name = $_SERVER["SERVER_NAME"];  
  3.         $path = $_SERVER["PHP_SELF"];  
  4.         $query_string = $_SERVER["QUERY_STRING"];  
  5.         if($query_string!=""&&$query_string!=null){  
  6.             $query_paras = explode("&", $query_string);  
  7.             $query_array = array();  
  8.             $query_length = count($query_paras);  
  9.             for($i=0;$i<$query_length;$i++){  
  10.                 $paras = explode("=", $query_paras[$i]);  
  11.                 $query_array[$paras[0]]=$paras[1];  
  12.             }  
  13.             $data = array("server_name"=>$server_name,"path"=>$path,"query_paras"=>$query_array);  
  14.         }else{  
  15.             $data = array("server_name"=>$server_name,"path"=>$path);  
  16.         }  
  17.         $callback = $_GET["callback"];  
  18.         echo $callback . "(" . json_encode($data) . ")";  

后臺(tái)服務(wù)器將需要返回的json數(shù)據(jù)進(jìn)行封裝,,然后并不直接返回json,而是返回一句js代碼,,

  1. echo $callback . "(" . json_encode($data) . ")";  
這句代碼將返回的json數(shù)據(jù)調(diào)用回調(diào)函數(shù)直接進(jìn)行處理

四,、zepto實(shí)現(xiàn)jsonp

[javascript] view plain copy
在CODE上查看代碼片派生到我的代碼片
  1. function getData(){  
  2.                 $.ajax({  
  3.                     type: 'GET',  
  4.                     url: '//www.homeworksong.sinaapp.com/getUrlInfo.php?callback=?',  
  5.                     timeout: 300,  
  6.                     context: $('tbody'),  
  7.                     data: { name: 'Zepto',type:"JSONP" },  
  8.                     success: function(data){  
  9.                       console.log(data);  
  10.                     },  
  11.                     error: function(xhr, type){  
  12.                       alert('Ajax error!')  
  13.                     }  
  14.                   });  
  15.             }  
五、kissy實(shí)現(xiàn)jsonp

[javascript] view plain copy
在CODE上查看代碼片派生到我的代碼片
  1. require(["io","node","util"],function(IO,$,Util){  
  2.     IO.jsonp("http://www.homeworksong.sinaapp.com/getUrlInfo.php",{type:"JSONP",name:"Kissy" },function(data){  
  3.         console.log(data);  
  4.         });  
  5.     });  
  6. });  



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多