Apollo Server HAPI CORS 预取不工作

Apollo Server HAPI CORS prefetch not working

我必须使用的 graphql-server-hapi 模块有一个大问题。 一切正常,直到我必须从具有 CORS 的浏览器请求我的 API。

这是寄存器配置:

register : GraphQLServer.graphqlHapi,
options : {
    path : '/graphql',
    graphqlOptions : {
        schema : Schema,
        graphiql : true
    },
    route : {
        cors : true
    }
}

POST 请求我在本地主机上使用 Postman 运行 一切都很好,但是当我想 运行 一个 OPTIONS 请求时(浏览器会这样做) ) 我得到一个 404,在 Access-Control-Request-Method 上有一个错误:

{
    "statusCode": 404,
    "error": "Not Found",
    "message": "CORS error: Missing Access-Control-Request-Method header"
}

我到处搜索,但似乎没有人在我之前遇到过这个问题 (?!)。 官方文档说 cors : true 足以启用 CORS...

我尝试在注册选项上手动添加OPTIONS方法,没有任何效果。

感谢您的帮助!

我终于找到了解决办法!

这太简单了,我只需要添加这个:

server.route({
    method : 'OPTIONS',
    path : '/graphql',
    handler : (request, reply) => {
        reply({ ok : true })
            .header('Access-Control-Allow-Methods', 'POST')
    }
})

添加手动OPTIONS管理,发送一个200,浏览器可以发送POST请求:)