【发布时间】:2018-12-30 16:15:40
【问题描述】:
我有一个在 localhost:8080 上运行的 API 服务器 (gin-gonic)。 所有典型的 CORS-Header 都设置为用于调试: 当我尝试使用简单的前端 (swagger-ui) 测试 API 时,我得到一个 CORS 错误。 (招摇在 localhost:9090 上运行)
当一切都在同一个域上运行时,它可以工作。
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Headers", "*")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT")
为什么这不起作用。这 3 行是否应该避免所有 CORS 问题?
我对实际的解释而不是简单的解决方案非常好奇。欢迎所有与此相关的资源(或关于 CORS 的优秀资源)。
在 Postman 或 CURL 中运行良好
【问题讨论】:
-
你能把你得到的错误信息包括进来吗?
-
感谢您的快速反馈。附上屏幕截图或错误。
-
@mkopriva,我也用 c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X -CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With") 结果一样
-
请求中似乎没有返回任何内容。实际上,它看起来像一个非 200 的 HTTP 状态码。您的请求返回的状态码是什么?