java文件服务器跨域,Java-全局跨域处理

这几天在开发中编写项目时需要前后端分离,刚好涉及到跨域这个问题,很早之前做项目时也用过,也是在网上找的列子,来源已经无处可寻了,若侵必删!

跨域问题一般出现两者服务器不同或者不同的端口上访问资源时会存在的问题,本文章目前适用于SpringMVC上,其他框架暂时还没涉猎,等以后接触到后在补充。

本次解决跨域的问题使用的是 filter.jar 包实现。

若是项目使用的是maven,导入依赖包:

com.thetransactioncompany

cors-filter

2.5

(直接复制即可)

然后找到web.xml配置文件,在里面加入下面这段配置:

CORS

com.thetransactioncompany.cors.CORSFilter

cors.allowOrigin

*

cors.supportedMethods

GET, POST, HEAD, PUT, DELETE,OPTION

cors.supportedHeaders

Accept, Origin, X-Requested-With, Content-Type, Last-Modified

cors.exposedHeaders

Set-Cookie

cors.supportsCredentials

true

cors.maxAge

3600

CORS

/*

这段配置代码就不作太多解释,直接复制即可使用。

后面需要编写一个 filter 的实现类,凡是需要跨域的类或接口,直接继承即可实现跨域,如下:

import javax.servlet.*;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;public class KuaY implementsFilter {

@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throwsIOException, ServletException {

HttpServletResponse response=(HttpServletResponse) res;

response.setHeader("Access-Control-Allow-Origin", "*");

response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

response.setHeader("Access-Control-Max-Age","3600");

response.setHeader("Access-Control-Allow-Headers","x-requested-with, content-type");

chain.doFilter(req, res);

}

@Overridepublic voidinit(FilterConfig filterConfig) {}

@Overridepublic voiddestroy() {}

}

以上方式不需要前端编写任何代码,直接后台全部搞定,使用方式就是继承 KuaY 这个实现类,所有前后端皆可跨域实现。原理可以自己去研究一下,路漫漫其修远兮,欢迎拍砖!

原文:https://www.cnblogs.com/Wang352051443/p/9709387.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值