Api Gateway不允许Access-Control-Allow-Origin

时间:2016-11-19 15:32:47

标签: javascript amazon-web-services cors aws-api-gateway

此网址位于AWS API网关中,方法get和stage已得到很好的部署。 我在aws document之后启用了CORS。

以下是启用CORS的步骤。

-Resource-> action->启用CORS-> 默认设置 - >启用CORS并替换CORS标头。 CORS结果中没有错误日志。

我不是专业的网络开发者,我的浏览器是safari 这是我的代码,用于查询" http://my.com"

 function request(idex) {
 var xmlHttp = new XMLHttpRequest();
 xmlHttp.onreadystatechange = function() { 
    if (xmlHttp.status == 200)
        callback(xmlHttp.responseText);
 }
 xmlHttp.open("GET", "http://my.com", true);  
 xmlHttp.send(null);}

控制台打印错误: XMLHttpRequest无法加载" http://my.com" Access-Control-Allow-Origin不允许原点http://example.com

如果javascript请求或API网关部署中有错误?

2 个答案:

答案 0 :(得分:2)

交叉来源问题来自服务器端而不是javascript端。当服务器不允许来自其他域的请求时,它会抛出跨源错误。但是你说你已经在aws实例中添加了CORS

由于javascript仅从my.com访问该服务,您需要在my.com网站中添加适当的域映射,以告知该请求将来自另一个名为example.com的域。可能是服务器配置不正确。或尝试服务器是否期望任何标题。

尝试在服务器中确认服务器没有问题后,在任何其他客户端(如soapui,chrome中的rect客户端插件等)中查看结果,从javascript尝试

要测试您可以尝试使用Chrome插件

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

答案 1 :(得分:2)

在咨询并尝试每种方法后,我发现错误如下。

根据AWS文档,我们无法在启用CORS之前部署我们的api。必须在部署之前设置有关标头和CORS的所有设置。 但API网关不会阻止此设置,也不会显示任何错误对话框。即使您的设置过程显示成功,API网关也不会更改标题。