我必须使用graphql-server-hapi
模块存在很大问题。
一切正常,直到我必须从带有CORS的浏览器请求我的API。
这是注册配置:
register : GraphQLServer.graphqlHapi,
options : {
path : '/graphql',
graphqlOptions : {
schema : Schema,
graphiql : true
},
route : {
cors : true
}
}
我在localhost上使用Postman运行的POST
请求一切正常,但是当我想运行OPTIONS
请求时(就像浏览器一样)我在Access上遇到了404错误-Control-Request-Method:
{
"statusCode": 404,
"error": "Not Found",
"message": "CORS error: Missing Access-Control-Request-Method header"
}
我到处搜索,但似乎没有人在我面前遇到这个问题(?!)。
官方文档说cors : true
足以启用CORS ......
我尝试在寄存器选项上手动添加OPTIONS
方法,没有任何影响。
感谢您的帮助!
答案 0 :(得分:1)
我终于找到了解决方案!
这很简单,我只需要补充一下:
server.route({
method : 'OPTIONS',
path : '/graphql',
handler : (request, reply) => {
reply({ ok : true })
.header('Access-Control-Allow-Methods', 'POST')
}
})
通过添加手动OPTIONS
管理,它发送200并且浏览器可以发送POST请求:)