此URL位于AWS API Gateway中,方法get和stage已得到很好的部署 . 我在aws document之后启用了CORS .
以下是启用CORS的步骤 .
-Resource-> action-> enable CORS-> default setting - >启用CORS并替换CORS头 . CORS结果中没有错误日志 .
我不是专业的Web开发人员,我的浏览器是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 回答
交叉起源问题来自服务器端而不是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
咨询并尝试每种方法后,我发现错误如下 .
根据AWS文档,我们无法在启用CORS之前部署我们的api . 必须在部署之前设置有关标头和CORS的所有设置 . 但API网关不会阻止此设置,也不会显示任何错误对话框 . 即使您的设置过程显示成功,API网关也不会更改标头 .