登录
首页 >  Golang >  Go问答

Golang Mux 路由器遇到 CORS 错误:如何在请求中添加凭证

来源:stackoverflow

时间:2024-02-16 12:18:24 106浏览 收藏

大家好,我们又见面了啊~本文《Golang Mux 路由器遇到 CORS 错误:如何在请求中添加凭证》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我只需要在我的 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,
})

它在邮递员中设置,但在 chrome 中不设置。一定是 cors/请求头问题。

以下是我收到的有关该错误的所有信息 - 请求的状态是 cors 错误:


正确答案


您应该检查控制台中的错误消息。应该有这样的错误消息:

从源“http://localhost:8080”获取“http://0.0.0.0:8081/login”的访问已被 cors 策略阻止:“access-control-”的值当请求的凭据模式为“include”时,响应中的“allow-origin”标头不得为通配符“*”

截图显示来源为http://0.0.0.0:3000,尝试替换

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

与:

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

今天关于《Golang Mux 路由器遇到 CORS 错误:如何在请求中添加凭证》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>