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请求:)
我必须使用的 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请求:)