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') } }) 

通过添加手动OPTIONSpipe理,它发送一个200,浏览器可以发送POST请求:)