请阅读Markus建议的链接,以及有关触发CORS飞行前请求的原因。
飞行前请求
:您可能具有类似JSON的内容类型,或其他一些触发飞行前请求的自定义标头,而服务器可能未处理该请求。如果您在前端使用常见的AJAX,请尝试添加此代码:https : //en.wikipedia.org/wiki/List_of_HTTP_header_fields#Requested-
With
大猩猩
handlers.CORS()会设置合理的默认值,以使CORS的基础知识为您服务;但是,您可以(也许应该)以更加实用的方式进行控制。
这是一些入门代码:
// Where ORIGIN_ALLOWED is like `scheme://dns[:port]`, or `*` (insecure)headersOk := handlers.AllowedHeaders([]string{"X-Requested-With"})originsOk := handlers.AllowedOrigins([]string{os.Getenv("ORIGIN_ALLOWED")})methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})// start server listen// with error handlinglog.Fatal(http.ListenAndServe(":" + os.Getenv("PORT"), handlers.CORS(originsOk, headersOk, methodsOk)(router)))


