Angular 用于读取文件的HttpClient.get
我想从Angular 8客户端读取位于以下位置的文件:C:\inetpub\wwwroot IIS正在运行。 我使用了以下代码并得到了此错误: CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 在IIS配置中,我添加了:Access Control Allow Origin,*以: HTTP响应头 但当IIS停止时,我也出现了上述错误 你能解释一下怎么了吗 提前谢谢大家,, 兹维卡Angular 用于读取文件的HttpClient.get,angular,httpclient,Angular,Httpclient,我想从Angular 8客户端读取位于以下位置的文件:C:\inetpub\wwwroot IIS正在运行。 我使用了以下代码并得到了此错误: CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 在IIS配置中,我添加了:Access Control Allow Origin,*以: HTTP响应头 但当IIS停止时,我也出现了上述错误 你能解释一下怎么了吗 提前谢谢大家,, 兹维卡 当您试图在引擎盖下从domain2.com访问doma
当您试图在引擎盖下从
domain2.com
访问domain1.com
时,大多数现代浏览器都会向服务器发送请求,并检查响应中是否存在access Control Allow Origin
标题
当服务器关闭时,浏览器无法获得任何响应,因此,此请求将被阻止
出于开发目的,您可以:
CORS
策略(在设置中或使用扩展名)李>
npm
,您就可以配置代理,然后只向主域发送请求。开发服务器将这些请求转发到目标李>
访问控制允许来源返回的域
在将角度AP部署到现实世界中时,首先要解决的问题之一,您已经开始使用 我看到您试图在请求中设置标题
“Access-Control-Allow-Origin”、“*”
,但这不起作用。浏览器只有在其第一次被应用程序所使用的API授权时才会真正接受标题(如Wikipedia文章所述)
当您有一个angular应用程序与另一个域(或同一域中的另一个端口,在您的情况下)的API通信时,该API需要授权CORS请求;否则,运行angular的浏览器将显示“被CORS策略阻止”错误。这不仅适用于angular,也适用于此浏览器中涉及多个域的任何请求
<>你一旦了解了CORS的最新信息,你就会明白为什么所有的浏览器都只考虑发送一个CORS请求,如果它们被API明确授权的话。它确实提高了安全性
要在IIS上配置CORS,您需要。这应该与添加配置链接中描述的行以及重新启动IIS一样简单
您也可以在浏览器上禁用CORS保护,但我不建议这样做。学习如何在angular应用程序中使用CORS,可以在您真正想要将其发布到生产环境时减少您的问题。嗨,Fabio,非常感谢!别担心!我很高兴,如果可以,请将我的回答标记为已决定,我们就完成了!可能重复的
let headers = new HttpHeaders;
headers.append ('Access-Control-Allow-Origin','*');
this.http.get ('http://localhost:80/dwell.xml',{headers:
headers}).subscribe(
(val) => {
console.log("GET call successful value returned in body",
val);
},
response => {
console.log("GET call in error", response);
},
() => {
console.log("The GET observable is now completed.");
});