简述问题
事情是这样的,后端这边使用了Gin框架,并且做了跨域处理,解决方式使用了我的这篇文章:https://blog.kakkk.net/archives/44/
然而,在请求的时候,发现前端控制台报跨域错误:
Access to XMLHttpRequest at 'http://localhost:8080/api/v1/admin/xxx/' from origin 'http://127.0.0.1:9090' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
检查网络请求,发现 OPTIONS
请求已被放行,说明跨域配置没有问题
检查后端日志,发现请求被307重定向:
[GIN-debug] redirecting request 307: /api/v1/admin/xxx --> /api/v1/admin/xxx
[GIN-debug] redirecting request 307: /api/v1/admin/xxx --> /api/v1/admin/xxx
问题归因
简单分析后,发现并不可能是后端的问题,重新检查代码,发现前端请求路径有问题,原请求应为 /api/v1/admin/xxx
,实际为 /api/v1/admin/xxx/
,导致了Gin框架进行307重定向,而重定向后并未经过 CROS
中间件,导致出现跨域问题
解决方法
改成实际的请求路径即可