q.T*_*hen 2 javascript cors apollo
我有一些想要的功能,apollo-server并花了一些时间将代码重构为它(以前使用express-graphql)。现在唯一的问题是我的Web应用程序之间(使用apollo-client)用于经过身份验证的请求之间存在“ CORS”问题。我记得在1.x版本中也遇到过这个问题,并花了很多时间来解决这个问题,但是我以前的解决方案在2.x版本中不起作用,对于能成功解决此问题的任何人,我们将不胜感激。工作。
localhost:8081localhost:4000const client = new ApolloClient({
link: createHttpLink({
uri: 'http://localhost:4000/graphql',
credentials: 'include'
})
})
Run Code Online (Sandbox Code Playgroud)
// Initializing express app code
var app = ....
// Using cors
app.use(cors({
credentials: true,
origin: 'http://localhost:8081',
}));
// Apollo Server create and apply middleware
var apolloServer = new ApolloServer({ ... });
apolloServer.applyMiddleware({ app })
Run Code Online (Sandbox Code Playgroud)
当客户端通过查询后端时。apollo-client,我在Chrome中收到以下错误:
但是,在服务器代码中,我明确设置了起点。当我在控制台中检查网络请求时,我得到了一个矛盾的故事,并且Access-Control-Allow-Origin显式设置为http://localhost:8081
使用Insomnia查询后端服务器并获得预期结果时,我没有遇到此问题。是否有人apollo在客户端和服务器上进行设置localhost并成功进行身份验证有经验?
我其实只是傻瓜。我正在查看错误的响应,将sideshowbarker放在其上,会apollo-server-v2自动覆盖CORS并将Access-Control-Allow-Origin标题默认设置为*。即使您的快速应用程序指定了CORS并将其作为中间件应用到apollo-server,该设置也会被GraphQL路由覆盖。如果有人遇到此问题,希望可以节省一些时间:
https://github.com/apollographql/apollo-server/issues/1142
您现在可以apollo-server在其applyMiddleware方法中明确为其指定CORS :https :
//www.apollographql.com/docs/apollo-server/api/apollo-server.html#Parameters-2
| 归档时间: |
|
| 查看次数: |
1080 次 |
| 最近记录: |