添加 vue http 时出错 header

Error when adding vue http header

我有一个工作应用程序,其前端在 vuejs 中,后端在 go 中。我正在为身份验证添加最终功能,但我 运行 出错了。

当我尝试将任何 http header 添加到 vuejs 请求时,出现错误。

这是我要添加到 vue component:

http: {
  headers: {
    Authorization: 'Bearer 123'
  }
}

我收到 preflight 错误:

XMLHttpRequest cannot load http://localhost:8000/api/investments?limit=6. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

现在我知道这通常是服务器端问题,但我添加了响应 header resp.Header().Set("Access-Control-Allow-Origin", "*")cors。如果我删除 vue object 中的 http 属性 一切正常。很奇怪,我什至尝试用 go 处理 OPTIONS 请求,但 api 的处理程序甚至没有被命中。

好的,所以我找到了答案,这是服务器问题 Authorization header 未被授权。所以只需将它添加为中间件即可。

c := cors.New(cors.Options{
        AllowedHeaders: []string{"Origin", "Accept", "Content-Type", "Authorization"},
    })
handler := c.Handler(router)
log.Fatal(http.ListenAndServe(":8000", handler))

我正在使用 rs/cors