Angular SPA与API Gateway的任何访问控制允许方法不一致

我们目前正在为我们的API使用无服务器部署模型,并使用NodeJS快速代码库。 所有这一切都很好,直到我们遇到了无服务器创build的CloudFormation堆栈的硬性限制,其创build的资源限制为200。

尝试解决这个问题的同时,无服务器团队正在进行嵌套堆栈集成,是用ANYreplaceGET,PUT,POST,DELETE一个单一的路由,在CloudFormation资源中大约节省了75%。

API网关看起来很好,OPTIONS路由的集成响应返回了Access-Control-Allow-Methods: 'OPTIONS,ANY'

用邮差testing这个工作就像一个魅力,能够使用所有以前提到的方法,而不是一帆风顺。

从我们的Angular前端执行此操作似乎不起作用。

XMLHttpRequest无法加载。 预检响应中的访问控制 – 允许 – 方法不允许方法PUT。

在Angular的眼里,POST,PUT,DELETE,…都不符合ANY,而邮递员却是这样。

任何input为什么这可能会发生将不胜感激。

UPDATE

一个POST请求通过Angular应用程序工作,只是PUT和DELETE请求抛出'访问控制允许的方法不允许的'错误。

OPTIONS路由的集成响应返回了Access-Control-Allow-Methods:'OPTIONS,ANY'。

如果通过CloudFormation模板创buildOPTIONS资源来启用CORS,那么你应该使'Access-Control-Allow-Methods'标题返回'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT'而不是'OPTIONS,ANY ”。 (如果您从控制台启用CORS,则API Gateway控制台将执行此操作)。 这应该解决它。

更新Serverless到一个版本高于1.10.0修复它。 他们已经解决了这个问题 。