我的工作应用程序的前端位于vuejs
,后端位于go
。我正在将最终功能添加到身份验证中,而且我遇到了错误。
当我尝试向vuejs
请求添加任何http标头时,我收到错误。
这是我添加到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.
现在我知道这通常是服务器端问题,但我添加了响应标头resp.Header().Set("Access-Control-Allow-Origin", "*")
。 cors
。如果我删除vue object
中的http属性,一切正常。我甚至尝试用OPTIONS
处理go
请求,但我的api处理程序甚至没有被击中。
答案 0 :(得分:0)
好的,所以我发现答案是服务器问题Authorization
标题未经授权。所以只需将其添加为中间件即可。
c := cors.New(cors.Options{
AllowedHeaders: []string{"Origin", "Accept", "Content-Type", "Authorization"},
})
handler := c.Handler(router)
log.Fatal(http.ListenAndServe(":8000", handler))
我正在使用rs/cors
包