您好,我创建了一个访问Lambda函数的AWS API网关。
如果我尝试调用网关从邮差一切工作正常。但是,当我尝试使用Angular应用程序调用get API时,出现以下错误:
在从原点“apiUrl”访问的XMLHttpRequest“http://localhost:8100”已被阻止通过CORS政策:否“访问控制允许来源”标题存在于所请求的资源
创建我用下面的代码角请求:
let params = new HttpParams().set('username','test@mail.com').append('password','1234');
this.http.get(apiUrl, {params}).subscribe(
res => {alert('success');},
err => {alert('fail');}
)
我已经启用了CORS在我的API网关。 我希望你们能帮助我打电话给我的AWS API。
我的当前选项方法看起来像这样: Integration Response
答案 0 :(得分:3)
您正在Angular中正确地形成您的请求。 这个问题已经无关,与你的应用程序的客户端,以及一切与你建立CORS在AWS支持的方式。
Postman可以正常访问您的API,因为Postman不执行Web浏览器所执行的“同源”政策,即,它完全绕过了CORS。
要使浏览器成功发出请求,API必须在同一端点上用200返回码来响应OPTIONS请求,并在该响应上包括一个Access-Control-Allow-Origin标头,以表明实际来源请求或通配符“ *”。
AWS对这个文档是很清楚的和广泛的。
答案 1 :(得分:0)
在API网关的“资源”->“操作”下。 “操作”下拉菜单具有启用CORS的选项。检查是否已启用CORS,并且您允许所有来源。