不是Access-Control-Allow-Origin *,但Chrome坚持认为是(升级apollo服务器后)

然后

我有一些想要的功能,apollo-server并花了一些时间将代码重构为它(以前使用express-graphql)。现在唯一的问题是我的Web应用程序之间(使用apollo-client)用于经过身份验证的请求之间存在“ CORS”问题我记得在1.x版本中也遇到过这个问题,并花了很多时间来解决这个问题,但是我以前的解决方案在2.x版本中不起作用,对于能成功解决此问题的任何人,我们将不胜感激。工作。

  • 我的网络应用托管在 localhost:8081
  • 我的服务器托管在 localhost:4000

这里逐字阅读代码,我有以下内容:

客户代码

const client = new ApolloClient({
    link: createHttpLink({
        uri: 'http://localhost:4000/graphql', 
        credentials: 'include'
    })
})

服务器代码

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

当客户端通过查询后端时。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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

服务器上的Access-Control-Allow-Origin问题

Spring Boot Access-Control-Allow-Origin

XMLHttpRequest 'Access-Control-Allow-Origin' 错误

如何绕过Access-Control-Allow-Origin?

Fiware错误:Access-Control-Allow-Origin

https的CORS Access-Control-Allow-Origin

我的Restify服务器中没有'Access-Control-Allow-Origin'错误

在源服务器上设置Access-Control-Allow-Origin标头

Access-Control-Allow-Origin 服务器模组不工作

哪个服务器需要返回Access-Control-Allow-Origin标头?

API服务器始终响应“否'Access-Control-Allow-Origin'”

Node.js文件以使用access-control-allow-origin运行本地服务器

将数据传递到后端(本地)服务器的“Access-Control-Allow-Origin”问题

如何修复python socket-io服务器中的“ Access-Control-Allow-Origin”错误

Chrome-Origin null不允许被Access-Control-Allow-Origin使用

添加CORS筛选器后找不到Access-Control-Allow-Origin标头

获取 CORS 错误而不是错误 500(不存在“Access-Control-Allow-Origin”标头)

如何在 actix-web 服务器中添加 ACCESS_CONTROL_ALLOW_ORIGIN 标头?

XMLHttpRequest原点null不允许file:///到file:///的Access-Control-Allow-Origin(无服务器)

为什么Ember.js不能从我的服务器中看到Access-Control-Allow-Origin标头?

没有“Access-Control-Allow-Origin”标头...我的 Beego 服务器配置错误吗?

即使我在服务器上设置了Access-Control-Allow-Origin,Google Firebase Functions也会出现CORS错误

当在https服务器上引用CSS文件时,Angular获取CORS No Access-Control-Allow Origin

从服务器返回401响应时,请求的资源上不存在“ Access-Control-Allow-Origin”标头

没有“Access-Control-Allow-Origin”标头错误,即使它已在 SignalR 服务器上配置

AngularJS:无法加载资源:Chrome中的Access-Control-Allow-Origin不允许使用Origin null

设置Access-Control-Allow-Origin后,为什么会出现CORS错误?

在Ajax POST请求后出现.Net MVC API Access-Control-Allow-Origin错误

即使在客户端设置Access-Control-Allow-Origin后,CORS错误