Javascript XMLHttpRequest-AWS API网关编号';访问控制允许原点';请求的资源上存在标头

Javascript XMLHttpRequest-AWS API网关编号';访问控制允许原点';请求的资源上存在标头,javascript,api,amazon-web-services,amazon-s3,aws-api-gateway,Javascript,Api,Amazon Web Services,Amazon S3,Aws Api Gateway,当我尝试通过浏览器打开请求时,出现以下错误: 无法加载XMLHttpRequest . 请求的服务器上不存在“Access Control Allow Origin”标头 资源。因此,不允许访问源“”。 响应的HTTP状态代码为401 我知道这可能是CORS的错误,但我没有设法解决这个问题 我正在使用AWSAPI网关,我已经在API上启用了CORS,在S3上启用了CORS,所有权限都正常 xmlHttp.open( "GET", "https://.......execute-api.us-ea

当我尝试通过浏览器打开请求时,出现以下错误:

无法加载XMLHttpRequest . 请求的服务器上不存在“Access Control Allow Origin”标头 资源。因此,不允许访问源“”。 响应的HTTP状态代码为401

我知道这可能是CORS的错误,但我没有设法解决这个问题

我正在使用AWSAPI网关,我已经在API上启用了CORS,在S3上启用了CORS,所有权限都正常

xmlHttp.open( "GET", "https://.......execute-api.us-east-1.amazonaws.com/v1/....../select", true);
xmlHttp.send();
我已经检查了API GET方法和OPTIONS方法,一切正常

其他信息:

当我使用API而没有在方法请求上定义“授权”时,一切都很好,但是当我放置授权者时,我得到了上面的错误

另一个问题:

我需要允许Lambda函数上的CORS吗


非常感谢所有帮助

问题是API网关的一个已知错误。在API上设置授权时,如果身份验证失败(例如拒绝访问),则CORS头不会应用于响应。如果授权成功,则标头将应用于响应


我们希望很快解决这个问题,但遗憾的是我无法提供ETA。

问题是API网关的已知错误。在API上设置授权时,如果身份验证失败(例如拒绝访问),则CORS头不会应用于响应。如果授权成功,则标头将应用于响应


我们希望尽快解决此问题,但很遗憾,我无法提供预计到达时间。

这是因为您可能会得到缓存结果

API网关>API>授权者中尝试将自定义授权者的结果TTL(秒)更改为0,默认为300秒

在自动生成的策略中,策略是缓存的,因此当第二个请求到达时,它与缓存的策略不匹配并返回错误

缓存是使用令牌、授权者、环境、API和部署创建的

如果您将TTL设置为0,那么它将不会被缓存,您可以测试您的API

您需要重新部署API以反映这些更改


这是我尝试过的一个解决方案,另一个解决方案是更改自定义生成的策略,并在资源中更加具体。您可以将每个特定的API作为一个资源数组提供。

这是因为您可能会得到一个缓存结果

API网关>API>授权者中尝试将自定义授权者的结果TTL(秒)更改为0,默认为300秒

在自动生成的策略中,策略是缓存的,因此当第二个请求到达时,它与缓存的策略不匹配并返回错误

缓存是使用令牌、授权者、环境、API和部署创建的

如果您将TTL设置为0,那么它将不会被缓存,您可以测试您的API

您需要重新部署API以反映这些更改

这是我尝试过的一个解决方案,另一个解决方案是更改自定义生成的策略,并在资源中更加具体。您可以将每个特定的API作为资源数组提供