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()为具体的返回数据
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值