我正在努力解决一个'403'错误:* '...已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态'*
任何建议,我如何可以调试或什么,我可能会错过的是赞赏
迄今为止进行的测试:
我在AWS中的lambda函数用正确的头响应:
选项 curl 测试:x1c 0d1x的数据
从chrome dev tools复制失败的axios命令为CURL(cmd):
-(此 * 在命令行中不 * 工作,curl响应:'curl:(3)URL使用错误/非法格式或缺少URL')从chrome dev tools复制失败的axios命令为fetch:
的和 Postman 的React,以证明没有cors,功能的作品:x1c4d 1x
其他信息:*
我已经多次验证了url、x-api-key等,并尝试了axios请求的不同配置,所有结果都是相同的响应,请参见下面的axios请求
的图像APIGateway的一些图片显示了请求和集成:
x 1c 7d1x
浏览器中的OPTIONS请求/响应(由Quentin建议):
我目前的推理路线:
- 也许我需要在我的cloudwatch模板中定义一个额外的安全设置?
- 也许webpack中有一个bug,next. js/ axios 0.27.2 / node 16.14.0。- 我发现了一个几乎相同的React提到HERE
1条答案
按热度按时间wqlqzqxt1#
403错误是由于OPTIONS响应x-api-key不被Web浏览器预期用于飞行前检查
一旦我通过以下方式禁用了cloudformation模板中所需的全局x-api-key:
字符串
结果如图所示;在控制台上显示OPTIONS -> API Key 'Not Required' x1c 0d1x
总之,api-gateway通过其默认配置干扰了预期的预检过程。
然而,在这个问题的范围之外有一个障碍,因为有多个人报告难以启用ApiKeyRequired for POST而不是OPTIONS。这是一个cloudformation问题(请参阅下面的链接来源了解更多细节)
更新:
在进行进一步的研究时,有足够多的人在2022年3月抱怨了这个确切的问题,一个特定的标志“AddApiKeyRequiredToCorsPreflight”当时是added。
这里的例子
讨论来源: