jsonp跨域解决方案

1.jquery 原生ajax调用,缺点是没有捕获调用的异常信息
 $.ajax({ 
    type : "get", 
    async:false, 
    url : "http://localhost:11180/xzinterface/jsonpService?action=qryDepartment", 
    dataType : "jsonp",//数据类型为jsonp 
    jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数 
    success : function(data){ 
       alert(data);
     
    }, 
    error:function(){ 
        alert('fail'); 
    } 
});

2.使用插件jquery.jsonp.js,可以解决捕获调用的异常信息

$.jsonp({ 
    url:'http://localhost:11180/xzinterface/jsonpService?action=qryDepartment ', 
    dataType:"jsonp"
    callbackParameter:"jsonpCallback"
    async:false
    timeout:5000, 
    success:function(data){ 
        alert(data);
    }, 
    error:function(XMLHttpRequest, textStatus, errorThrown) { 
        //alert("wrong!!"); 
         alert( "ERREUR: " + textStatus);          
         alert( "ERREUR: " + errorThrown); 
    }, 
    complete: function(XMLHttpRequest, textStatus) { 
      //  alert("over") 
        this; // 调用本次AJAX请求时传递的options参数 
    } 
}); 

以上两个方法调用后的url为:
http://localhost:11180/xzinterface/jsonpService?action=qryDepartment?jsonpCallback='xxxxxx'&_=yyyyy

其中xxxxxxx为自动生成的回调函数名



3.后台代码很简单:

  String jsonpCallback = request.getParameter( "jsonpCallback");//客户端请求参数,获取回调函数名  
  result = jsonpCallback+"(" +service .qryDepartment()+")";//service .qryDepartment()为具体的返回数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值