包装:apollo-server-express
版本: v2.6.0
问题:CORS设置未生效。
已报告给阿波罗?是,Issue 3058
说明:从我们的React客户端开始,在Apollo Engine中发送better client awareness的apollographql-client-name
和apollographql-client-version
标头。
Access to fetch at 'https://something.com/graphql' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field apollographql-client-name is not allowed by Access-Control-Allow-Headers in preflight response.
我们收到上述CORS
错误。通过传递cors
,我们通过快速中间件在Apollo Server上启用了cors: true
。由于某些原因,此更改没有任何区别。我们继续收到上述错误。
const server: ApolloServer = new ApolloServer({
...
...
});
const app: Application = express();
server.applyMiddleware({
app,
cors: true,
path: '/graphql',
});
nginx
坐在前面,它确实收到了请求并转发到Apollo Server。cors: true
默认启用所有功能吗?cors: {
origin: true,
allowedHeaders: ['Authorization', 'Content-Type', 'apollographql-client-name']
},
欢迎任何输入和建议!
答案 0 :(得分:0)
问题已解决。
我们在Apollo Server
上有kubernetes入口层,这就是导致更改无法反映的原因。在nginx入口上启用cors
后,我们就能够成功进行呼叫。