authorization 传 就跨域_corsFilter java ajax解决认证(Authorization)跨域问题

这两天被跨域的问题搞得心力交瘁,好在最终解决了。

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

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

用的是corsFilter,apache

tomcat已经对这个过滤器以及使用方法做了详细的说明,地址是: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 +

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以通过以下方式解决问题: 1. 使用 CORS(Cross-Origin Resource Sharing):CORS是一种机制,允许服务器在响应请求时设置响应头,从而允许访问。在Java中,可以通过在Servlet中设置响应头实现CORS。具体做法是在Servlet的doGet()或doPost()方法中添加以下代码: resp.setHeader("Access-Control-Allow-Origin", "*"); resp.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); resp.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization"); 其中,Access-Control-Allow-Origin指定允许访问的名,*表示允许所有名访问。Access-Control-Allow-Methods指定允许的请求方法,Access-Control-Allow-Headers指定允许的请求头。 2. 使用 JSONP(JSON with Padding):JSONP是一种解决方案,它通过在请求URL中添加一个回调函数名,让服务器返回一个JavaScript脚本,该脚本调用回调函数并将数据作为参数递给回调函数。在Java中,可以通过在Servlet中返回一个JavaScript脚本实现JSONP。具体做法是在Servlet的doGet()或doPost()方法中添加以下代码: String callback = request.getParameter("callback"); String data = "{ \"name\": \"张三\", \"age\": 20 }"; String result = callback + "(" + data + ")"; response.getWriter().write(result); 其中,callback是从请求URL中获取的回调函数名,data是要返回的JSON数据,result是将data作为参数递给回调函数后的JavaScript脚本。 以上两种方式都可以解决问题,但CORS更为安全、灵活,而JSONP则更为简单、易用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值