Angular 用于读取文件的HttpClient.get

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

我想从Angular 8客户端读取位于以下位置的文件:C:\inetpub\wwwroot IIS正在运行。 我使用了以下代码并得到了此错误:

CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头

在IIS配置中,我添加了:Access Control Allow Origin,*以: HTTP响应头

但当IIS停止时,我也出现了上述错误

你能解释一下怎么了吗

提前谢谢大家,, 兹维卡


当您试图在引擎盖下从
domain2.com
访问
domain1.com
时,大多数现代浏览器都会向服务器发送请求,并检查响应中是否存在
access Control Allow Origin
标题

当服务器关闭时,浏览器无法获得任何响应,因此,此请求将被阻止

出于开发目的,您可以:

  • 在浏览器中禁用
    CORS
    策略(在设置中或使用扩展名)
  • 只要您使用Angular,并且很可能使用
    npm
    ,您就可以配置代理,然后只向主域发送请求。开发服务器将这些请求转发到目标
  • 正确调试和配置您的Web服务器,使其返回正确的标题,同时请注意随
    访问控制允许来源返回的域

  • 在将角度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.");
      });