如何解决使用HTTP从Angular应用程序内调用AWS Lambda函数
我已经使用适用于Java的AWS开发工具包成功制作,构建和部署了AWS Lambda。我已经使用AWS控制台测试了Lambda,没有任何问题。
现在,我希望每当有人从Angular应用程序中单击按钮时调用Lambda函数。我的第一个想法是简单地使用主体对Lambda API端点进行HTTP POST调用。
请参阅我的以下服务代码:
export class Service{
constructor(private httpClient: HttpClient) {}
createContact() {
const header: HttpHeaders = new HttpHeaders();
header.append('Accept','application/text');
this.httpClient
.post(RELAY_URL,test,{ headers: header,responseType: "text" })
.subscribe((data) => {
console.log(data);
});
}
}
实际上,执行此方法将调用Lambda方法,并且lambda将成功完成。但是,我的Angular客户端没有收到正确的响应。但是,这确实发生了:
我很茫然,希望你能提供帮助。
解决方法
CORS仅保护您免于在浏览器中读取响应:
- 请求将触发
- 服务器将执行
- 响应将到达,但是
- 浏览器不会向您显示结果
如果从提示符处将其触发,则会得到响应。
我认为您必须在服务器端应用您正在调用的域(对于AWS Lambda,应该有一种方法可以做到这一点)。
这就是CORS的工作方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。