利用jsonp实现跨越获取数据

 JSONP名为JSON with Padding,它是一个非官方的协议,允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问。

       以JQ为例实现jsonp调取数据,我们可以从下面两个方面着手处理:客户端以及服务端做相应的处理。

      1,客户端

      客户端页面首先在body 中放置一个div: <div id="res"></div> 将远程调用的数据写入该div中

   

Code:
< script type = " text/javascript "  src = " /js/jquery-1.3.2.min.js " >< / script>
< script type = " text/javascript " >
    $(document).ready(
function (){
        $.ajax({
             url:http:
//192.168.9.1/jsonp_test.ashx,
             dataType: " jsonp " ,
             jsonp:
" jsonpcallback " ,
             success:
function (data){
                 
var  $ul  =  $( " <ul></ul> " );
                 $.each(data,
function (i,v){
                     $(
" <li/> " ).text(v[ " id " +   "   "   +  v[ " name " ]).appendTo($ul)
                 });
                 $(
" #res " ).append($ul);
             }
        });
    });
< / script>

 

  

      也可以通过JQ的getJSON方法得到数据,例:  

 $(document).ready( function (){ 
    $(
" #btn " ).click( function (){
    
// 获取动态验证码 
     var  url  =   "http://192.168.9.1/jsonp_test.ashx ";
     try  {                  
        $.getJSON(url,
function (json) {
        
var  _DECODE  =  json[ 0 ].name;
                $(
" #res " ).append(name);
        });                
    } 
catch  (e){
    }        
    });         
}); 

 

 

      2,服务端(http://192.168.9.1/jsonp_test.ashx

       代码很简单,就是输出一个字符串
       比如正常输出json应该是:[{"id":"1","name":"测试1"},{"id":"2","name":"测试2"}]
       jsonp 则输出: jsonpcallback([{"id":"1","name":"测试1"},{"id":"2","name":"测试2"}])
       其中“jsonpcallback”是客户端传过来的.

       做到这里一个简单的jsonp跨域获取数据的demo就完成了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值