简述问题

事情是这样的,后端这边使用了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中间件,导致出现跨域问题

解决方法

改成实际的请求路径即可

最后修改:2022 年 05 月 12 日
如果觉得我的文章对你有用,请随意赞赏