Apollo服务器HAPI CORS预取不起作用
我有一个很大的问题,我必须使用graphql-server-hapi
模块。 一切工作,直到我必须从CORS的浏览器请求我的API。
这里是寄存器configuration:
register : GraphQLServer.graphqlHapi, options : { path : '/graphql', graphqlOptions : { schema : Schema, graphiql : true }, route : { cors : true } }
一切都很好POST
请求本地主机上运行邮递员,但是当我想要运行一个OPTIONS
请求(如浏览器将这样做),我得到一个404访问控制请求方法的错误:
{ "statusCode": 404, "error": "Not Found", "message": "CORS error: Missing Access-Control-Request-Method header" }
我到处search,但似乎没有人在我面前遇到这个问题(?!)。 官方文件说cors : true
足以启用CORS …
我试图在注册选项上手动添加OPTIONS
方法,没有任何影响。
谢谢你的帮助 !
我终于find了解决scheme!
这很简单,我只需要添加这个:
server.route({ method : 'OPTIONS', path : '/graphql', handler : (request, reply) => { reply({ ok : true }) .header('Access-Control-Allow-Methods', 'POST') } })
通过添加手动OPTIONS
pipe理,它发送一个200,浏览器可以发送POST请求:)