Golang多路复用器路由器CORS错误时添加凭据请求

vi4fp9gy  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(125)

我只需要在我的Go Mux路由器中允许凭据。它似乎应该是相当直接的前进。一旦我在axios拦截器中将withCredentials设置为true,我只会得到CORS错误。不过,我相信我配置正确。我是不是漏掉了什么?
以下是我提供的路线:

log.Fatal(http.ListenAndServe(":8080",
handlers.CORS(handlers.AllowedHeaders([]string{"X-Requested-With", "Content-Type", "Authorization", "withCredentials"}), 
handlers.AllowedMethods([]string{"GET", "POST", "PUT", "HEAD", "OPTIONS"}),
handlers.AllowedOrigins([]string{"*"}), 
handlers.AllowCredentials())(loggedRouter)))

字符串
显然,我需要启用此设置和获取cookie。我尝试这样设置cookie:

//set session cookie
http.SetCookie(w, &http.Cookie{
    Name:     "session_key",
    Value:    staffAdminSession.SessionKey,
    Expires:  time.Now().Add(time.Hour * 24),
    HttpOnly: true,
})


它在Postman中设置,但在Chrome中没有。它必须是CORS/请求标头问题。
下面是我为错误提供的所有信息-请求的状态是CORS错误:x1c 0d1x的数据

deyfvvtc

deyfvvtc1#

您应该检查控制台中的错误消息。应该会出现这样的错误消息:
CORS策略已阻止从源“http://localhost:8080”访问“http://0.0.0.0:8081/login”:**当请求的凭据模式为'include'**时,响应中'Access-Control-Allow-Origin'头的值不能为通配符'*'。
截图显示原点为http://0.0.0.0:3000,尝试替换

handlers.AllowedOrigins([]string{"*"}

字符串
与:

handlers.AllowedOrigins([]string{"http://0.0.0.0:3000"}

相关问题