POST 请求中缺少 CORS header Allow-Origin
CORS header Allow-Origin missing in POST requests
我知道有很多与 CORS 相关的问题,但我似乎找不到这个问题的答案。
这是我的服务器端 golang 代码(我们使用 github.com/rs/cors go 模块):
我们基本上有一组需要授权的 API header 和一些不需要授权的 API(将结帐与结帐视为访客功能)
allowedOrigins := []string{"http://localhost:3000", "http://localhost:3001"}
//allowedHeaders := []string{"Authorization"}
c := cors.New(cors.Options{AllowedOrigins: allowedOrigins, AllowCredentials: true})
handler := c.Handler(r)
我发现的是:
// if allowcredentials is set to true, then all non auth requests go through but all auth requests return cors error
// if allowedHeaders: authorization is set then all **authenticated and NON authenticated** POST requests fail. GET works fine for both cases.
更具体地说:当我尝试执行 POST 请求,我在上面设置了 AllowedHeaders:authorization 选项。
如果我评论该行(如您在上面看到的),那么非身份验证请求将完美通过,并且 AllowedOrigins hader 将在 OPTIONS 请求中发回..
已修复....
https://github.com/rs/cors
过得不错CorsOptions Debug:true
。我用它来检查发生了什么,当我硬编码允许授权进入我的服务器时,POST 请求随后抱怨,因为我也在发送 content-type(由客户端自动发送( axios),我没有指定它)。服务器几乎说“我只识别授权 header”...我添加了 Content-Type
,它现在可以工作了!
allowedHeaders := []string{"Authorization", "Content-Type"}
我知道有很多与 CORS 相关的问题,但我似乎找不到这个问题的答案。
这是我的服务器端 golang 代码(我们使用 github.com/rs/cors go 模块): 我们基本上有一组需要授权的 API header 和一些不需要授权的 API(将结帐与结帐视为访客功能)
allowedOrigins := []string{"http://localhost:3000", "http://localhost:3001"}
//allowedHeaders := []string{"Authorization"}
c := cors.New(cors.Options{AllowedOrigins: allowedOrigins, AllowCredentials: true})
handler := c.Handler(r)
我发现的是:
// if allowcredentials is set to true, then all non auth requests go through but all auth requests return cors error
// if allowedHeaders: authorization is set then all **authenticated and NON authenticated** POST requests fail. GET works fine for both cases.
更具体地说:当我尝试执行 POST 请求,我在上面设置了 AllowedHeaders:authorization 选项。
如果我评论该行(如您在上面看到的),那么非身份验证请求将完美通过,并且 AllowedOrigins hader 将在 OPTIONS 请求中发回..
已修复....
https://github.com/rs/cors
过得不错CorsOptions Debug:true
。我用它来检查发生了什么,当我硬编码允许授权进入我的服务器时,POST 请求随后抱怨,因为我也在发送 content-type(由客户端自动发送( axios),我没有指定它)。服务器几乎说“我只识别授权 header”...我添加了 Content-Type
,它现在可以工作了!
allowedHeaders := []string{"Authorization", "Content-Type"}