java后端解决跨域的几种问题解决

1,037 阅读2分钟

本文已参与「新人创作礼」活动.一起开启掘金创作之路。

java后端解决跨域的几种问题解决****

最近与前端联调老是碰到跨域问题,在这里谈谈后台解决跨域的几种解决方案。

1、 java过滤器过滤****

允许整个项目跨域访问,可通过filter来进行过虑:

image.png 在web.xml中需要添加如下配置:

image.png

为单个方法提供跨域访问,直接添加请求头:

image.png

2、后台 Http请求转发****

使用HttpClinet转发进行转发(简单的例子 不推荐使用这种方式)

image.png

3、后台配置同源Cors (推荐)****

在SpringBoot2.0 上的跨域 用以下代码配置 即可完美解决你的前后端跨域请求问题

image.png

如果只想部分接口跨域,且不想使用配置来管理的话,可以使用@CrossOrigin注解方法

该注解可以加在controller里也可以加在对应的方法中

image.png

4、使用SpringCloud网关****

服务网关(zuul)又称路由中心,用来统一访问所有api接口,维护服务。

Spring Cloud Zuul通过与Spring Cloud Eureka的整合,实现了对服务实例的自动化维护,所以在使用服务路由配置的时候,我们不需要向传统路由配置方式那样去指定具体的服务实例地址,只需要通过Ant模式配置文件参数即可

5、使用nginx做转发****

现在有两个网站想互相访问接口 在a.a.com:81/A中想访问 b.b.com:81/B 那么进行如下配置即可

然后通过访问 www.my.com/A 里面即可访问 www.my.com/B

image.png

如果是两个端口想互相访问接口 在b.b.com:80/Api中想访问 b.b.com:81/Api 那么进行如下配置即可

使用nginx转发机制就可以完成跨域问题

image.png

 允许所有请求通过

image.png

总结:

综上所述推荐使用后台配置同源Cors和过滤器,以上为个人总结的后台解决跨域的几种方案,仅供参考。