频道栏目
首页 > 资讯 > Java > 正文

corsFilter java ajax解决认证(Authorization)跨域问题

17-06-16        来源:[db:作者]  
收藏   我要投稿

corsFilterjavaajax解决认证(Authorization)跨域问题

一开始就搞错了方向,想要直接在客户端去解决问题,及jsp或者html中,其实应该从服务端入手,客户端不需要修改任何东西。

所谓的跨域就是希望客户端能够调用与本地不同的ip或者同一个ip不同的端口或者是不同的域名。

用的是corsFilter,apachetomcat已经对这个过滤器以及使用方法做了详细的说明,地址是:https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html

1.首先在pom.xml里面引入包

org.apache.tomcat

tomcat-catalina

2.3

provided

?

2.在web.xml里面配置过滤的条件

CorsFilter

org.apache.catalina.filters.CorsFilter

cors.allowed.origins

*

cors.allowed.methods

GET,POST,HEAD,OPTIONS,PUT,DELETE

cors.allowed.headers

Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization

 

CorsFilter

/*

有时候跨域调用需要使用认证,例如如下所示:

$.ajax({

url:Document.contextPath +'/services/rest/auth/login',

?type:"GET",

?async:false,

?contentType:"application/json;charset=utf-8",

?dataType:"json",

?beforeSend:function(request)

{

request.setRequestHeader("Authorization","Basic " + Document.token);},

?success:function(data) { }

});?

需要在header里面增加Authorization,因此在服务端的cors.allowed.headers增加Authorization?

启动后可以在调试工具中发现同一个接口请求了两次,?

?????我所理解的是第一次请求是判断客户端是否具有访问服务端接口的权利

只有通过了才能调用,由下图也可以看出认证信息在header里面。

相关TAG标签
上一篇:201301 JAVA 题目2-3级(走网格,从左上角到右下角)
下一篇:Dynamic Web Module 3.0 requires Java 1.6 or newer
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站