首页 > 解决方案 > 跨域请求被阻止 React Golang

问题描述

我正在尝试从与 axios 反应到我的 golang 微服务的发布请求,但出现错误

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://127.0.0.1:4040/register. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

这是我的 axios 请求

const req = {
            data: [
                {
                    type : "register",
                    attributes : {
                        username : "Some name",
                        password : "asdasdasdasdasd3",
                        name : "some name",
                        email : "somename@yahoo.com"
                    }
                }
            ]
        }
axios.post(`http://127.0.0.1:4040/register`, { req })
            .then(res => {
                console.log(res);
                console.log(res.data);
        })

这是我在 golang 的终点

    func register (w http.ResponseWriter, r *http.Request) {
            w.Header().Set("Access-Control-Allow-Origin", "*")
            w.Header().Set("Access-Control-Allow-Credentials", "true")
            w.Header().Set("Content-Type", "application/json");
            jsonBody := registerController.Perform(r)
            w.Write(jsonBody)
    }

    func main() {
        router := mux.NewRouter().StrictSlash(true)

        fmt.Println("server running at port " + SERVER_PORT)
        router.HandleFunc("/register", register).Methods("POST")

        http.ListenAndServe(SERVER_PORT, router)
}

我想我错过了一些东西 - 有人可以帮助我吗

标签: reactjshttpgoaxios

解决方案


您的请求标头似乎缺少 CSRF 参数。

在 MDN 页面上阅读它,对我来说,您似乎需要在发送到微服务的请求中传递它。

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin


推荐阅读