一、该问题的重现步骤是什么?
本地访问正常,发布到线上出现跨域问题
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
版本:2.7.1.RELEASE Boot版 。本地win10 线上centos8 ,nginx
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
nginx location ^~/api { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; # rewrite ^/api/(.*)$ /$1 break; proxy_pass http://127.0.0.1:10020; }
BladeConfiguration 代码: @Configuration public class BladeConfiguration implements WebMvcConfigurer { /** * 跨域配置 */ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedHeaders("*") .allowedMethods("*") .maxAge(3600) .allowCredentials(true); } }
2021-01-29 14:24:52.020 WARN 240352 --- [ XNIO-1 task-1] o.s.web.servlet.PageNotFound : No mapping for OPTIONS /api/blade-auth/oauth/token 2021-01-29 14:24:52.031 ERROR 240352 --- [ XNIO-1 task-1] o.s.c.log.error.RestExceptionTranslator : 404没找到请求:No handler found for OPTIONS /api/blade-auth/oauth/token 2021-01-29 14:25:01.034 WARN 240352 --- [ XNIO-1 task-2] o.s.web.servlet.PageNotFound : No mapping for OPTIONS /api/blade-auth/oauth/token 2021-01-29 14:25:01.035 ERROR 240352 --- [ XNIO-1 task-2] o.s.c.log.error.RestExceptionTranslator : 404没找到请求:No handler found for OPTIONS /api/blade-auth/oauth/token
boot版本配置是没问题的,后端地址部署后支持跨域了。
你报错的配置有两个地方:1、前端nginx没有配置跨域,导致报错。2、反向代理出错,正常情况用/api来反向代理后端,那请求后到后端正确的地址是不带/api前缀才对。目前已带了,所以报错404。
你需要再检查一下nginx配置是否有问题,完整的可以看这个:https://sns.bladex.cn/q-184.html
扫一扫访问 Blade技术社区 移动端