angularjs – Angular SPA与API网关中的任何access-control-allow-methods不一致

前端之家收集整理的这篇文章主要介绍了angularjs – Angular SPA与API网关中的任何access-control-allow-methods不一致前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们目前正在为我们的API使用无服务器部署模型,具有NodeJS快速代码库.一切顺利,直到我们遇到无服务器创建的CloudFormation堆栈的硬限制,其创建的资源限制为200.

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

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

使用邮递员进行测试就像一个魅力,能够毫不费力地使用前面提到的所有方法.

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

XMLHttpRequest cannot load . Method PUT is not allowed by Access-Control-Allow-Methods in preflight response.

在Angular的眼中,……与任何人都不匹配,而对于邮递员而言,它确实如此.

任何可能发生这种情况的输入将不胜感激.

UPDATE

POST请求通过Angular应用程序工作,只有PUT和DELETE请求抛出’Access-Control-Allow-Methods’不允许的错误.

解决方法

The integration response for the OPTIONS route returned Access-Control-Allow-Methods: ‘OPTIONS,ANY’.

如果您通过CloudFormation模板创建OPTIONS资源来启用CORS,那么您应该使’Access-Control-Allow-Methods’标题返回’DELETE,GET,HEAD,OPTIONS,PATCH,PUT’而不是’OPTIONS,ANY ”. (如果从控制台启用CORS,这就是API Gateway控制台的功能).那应该解决它.

猜你在找的Angularjs相关文章