当前位置: 首页 > 知识库问答 >
问题:

Cors-如何处理飞行前选项请求,需要一个自定义的标题?(AWS:使用vpcendpoint的私有API网关)

益光亮
2023-03-14

问题是,据我所知,当你向API-gateway发送请求时;浏览器将首先发送一个飞行前选项请求。此预飞行请求将不会添加任何自定义头I:x-apigw-api-id头。这将导致返回一个403,甚至不按options请求。

我的理解是客户机无法控制飞行前的请求,它由浏览器处理。

get请求通过postman工作,options请求也通过postman工作,但只有当我为每个请求添加x-apigw-api-id标头时。

我在发帖前查了一些问题:

  • API网关CORS:没有'Access-Control-Allow-Origin'标头
  • 不能在带有CORS的AWS API网关上使用自定义请求头
  • 请求api网关cors错误
  • AWS API网关没有'Access-Control-Allow-Origin'标头
  • AWS API网关endpoint在从S3上的静态站点发送消息时给出CORS错误

共有1个答案

皇甫宇定
2023-03-14

这个问题可以通过将VPCendpoint关联到您的私有API来解决。这将为您的私有API生成一个Route53别名。从文档中看,

当您将VPCendpoint与您的私有API关联时,API Gateway将生成一个新的Route53别名DNS记录,您可以使用该记录调用您的私有API,就像您调用边缘优化或区域API一样,无需重写主机头或传递x-apigw-api-id头。

https://docs.aws.amazon.com/apigateway/latest/developerguide/associat-private-api-with-vpc-endpoint.html

 类似资料:
  • Chrome希望响应Access-Control-Request-Headers包括我的自定义x-header,这似乎是合乎逻辑的。这是API网关错误吗? 我看到的唯一解决办法是删除自定义头并在POST正文中传递数据。

  • 如果我取出授权头选项,请求就会工作。 我也试过https://github.com/barryvdh/laravel-cors,但仍然没有乐趣。任何帮助都很感激!

  • 所以这里的是一个类似JWT的标记。 在我的Angular代码中,我只需将令牌添加为,如下所示: 请注意,我的身份验证/注册路由工作正常,我只是在将标头传输到Spring服务器时遇到了困难。 谢谢,

  • 问题内容: 我现在奋斗了几个小时。我想向另一个域发出简单的Ajax请求,但始终出现http 401错误: 我在服务器端设置了所有相关的CORS标头。这是网络流量: 我知道有很多关于此主题的文章,但似乎我缺少一些简单的东西。有人可以帮我吗? 问题答案: 更新 看起来我不对。标头从不发送请求。 -你需要确保你的服务器不响应到请求。 我不知道您的服务器用什么语言编写,但是您以错误的方式实现了授权-应该从

  • 首先,我对AWS很陌生。以下是我想要达到的目标: null 因此,现在我有了一个专用子网,其endpoint允许HTTP(S)流量。该endpoint具有某些(专用)DNS名称,(可能)也具有专用IP(找不到) 现在我想要添加一个API网关来前面的一些AWS lambda。我创建所述API,并将其作为endpoint类型->Private 下面是:正式文档将API网关“链接”到VPCendpoin

  • 我有一个配置为使用WINDOWS AUTHENTICATION的webapi。 在我的angular应用程序中,我有以下方法: 让方法完美地工作。 POST方法给了我以下错误: 最后介绍了webapi方法 还有我们几个小时来一直在努力的那个该死的错误: 无法加载XMLHttpRequesthttp://a.b.com/api/Contactos.对飞行前请求的响应未通过访问控制检查:请求的资源上不