jquery之ajax跨域请求

由于最近在调试新的应用程序,程序中涉及到http的跨域问题,ajax的示例脚本如下:

     

$.ajax({
   type: methodType,
   url: urlAddress,
   async:asyncType,
   data:postdata,
   dataType: ajaxDataType,
   xhrFields:{withCredentials: true},
       crossDomain:true,
   contentType:contType,
   beforeSend:function() {
      funObj.ajaxBefore && funObj.ajaxBefore();
   },
   success:function(data){
      funObj.ajaxSuccess(data,funObj);
   },
   complete:function(){
      funObj.ajaxComplete && funObj.ajaxComplete();
   },
   error:function(xhr, textStatus, errorThrown) {
      if(xhr.status == 403) {
         Materialize.toast("你当前的会话已失效或无权访问该地址!",MSG_TIMEOUT);
      } else {
         if(funObj.ajaxError) {
             funObj.ajaxError();
         } else {
             ajaxError();
         }
       }
      return;
   }
});
 
其中:
   xhrFields:{withCredentials: true} 表示将本次请求附加cookie信息;
   crossDomain:true 表示允许脚本跨域请求;
后台的服务器端的web.xml增加一个filter配置如下:
<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
    <init-param>
        <param-name>cors.allowOrigin</param-name>
        <param-value>*</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportedMethods</param-name>
        <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportedHeaders</param-name>
        <param-value>*</param-value>
    </init-param>
    <init-param>
        <param-name>cors.exposedHeaders</param-name>
        <param-value>X-Test-1,X-Test-2</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportsCredentials</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>cors.maxAge</param-name>
        <param-value>3600</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
上面需要注意的是:filter-mapping需要是排在第一个的filter,如果不是第一个在其它filter做的一些鉴权会有问题,切记。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值