3 回答

TA贡献1817条经验 获得超6个赞
您需要提供 CORS 检查作为中间件。例如,您可以使用“github.com/rs/cors”。它可能看起来像下面的代码
mux.Handle("/playground", handler.Playground("API", "/gql"))
mux.Handle("/gql",
handler.GraphQL(
gen.NewExecutableSchema(gen.Config{Resolvers: resolver.New(dep)}),
handler.ErrorPresenter(errorCustomize)))
h := cors.AllowAll().Handler(util.JwtMiddleware(mux))
srv := &http.Server{
Addr: ":8087",
Handler: h,
}

TA贡献1858条经验 获得超8个赞
我有同样的问题,并通过使用NewDefaultServer
方法而不是New
.
srv := handler.NewDefaultServer(.....)

TA贡献1898条经验 获得超8个赞
我遇到了同样的问题,但实际上是因为当我向服务器发出请求时,我没有添加 header Content-Type: application/json。奇怪的是,我Content-Length在使用邮递员时必须包含标题。
所以,当我尝试:
curl --request POST \
--url http://localhost:8000/ \
--data '{"query":"query {\n televisions {\n id\n }\n}"}'
这是回应:
{"errors":[{"message":"transport not supported"}],"data":null}
但是当我添加标题时:
curl --request POST \
--url http://localhost:8000/ \
--header 'content-type: application/json' \
--data '{"query":"query {\n televisions {\n id\n }\n}"}'
服务器正常响应:
{"data":{"televisions":[]}}
- 3 回答
- 0 关注
- 103 浏览
添加回答
举报