我的localhost上运行了Angular 2打字稿应用程序。我必须在我的应用程序中访问外部REST API。每当我尝试访问时,都会收到此错误
阻止跨源请求:同源策略禁止读取 ***的远程资源。 (原因:CORS标题 “Access-Control-Allow-Origin”缺失。)
解决此问题的最佳解决方案是什么?我不想使用任何插件/ addOns。 我不这么认为这个包适用于Angular 2 Typescript应用程序。它用于express.js
npm install cors --save
如何使用typescript为整个项目/应用程序设置此CORS标头'Access-Control-Allow-Origin'?我需要在下面的代码中添加此标题?
var request = new XMLHttpRequest();
let myurl='http://remoteIP/api';
request.open('GET', myurl, true);
request.responseType = 'blob';
request.onload = function() {
var reader = new FileReader();
reader.readAsDataURL(request.response);
reader.onload = (e) => {
console.log('DataURL:', reader.result);
};
};
request.send();
答案 0 :(得分:2)
托管该API的服务器需要启用CORS。这是客户端语言的限制 - 他们通过浏览器发出这些REST请求。浏览器会将您提供的任何模拟原始标题更改为实际网站的标题。
这不是服务器端语言的问题,例如PHP甚至nodeJS / expressJS。