Angular-无法下载zip文件

时间:2019-10-10 09:50:36

标签: angular iis

除了可以从网络路径下载zip文件之外,我有一个可以按预期工作的角度应用程序。

我收到以下错误消息: “从源'{http://localhost:4200'对'file://IPAddress/d$/***/Output.zip'处XMLHttpRequest的访问已被CORS策略阻止: 跨源请求仅支持以下协议方案:http,数据,chrome,chrome扩展名,https。”

这是我用来下载zip文件的功能:

downloadFile(filePath: string) {
    return this.http.get(filePath, {
      responseType: 'arraybuffer'
    }).subscribe(data => {
      const blob = new Blob([data], {
        type: 'application/zip'
      });
      const url = window.URL.createObjectURL(blob);
      window.open(url);
    });
  }

重要的是要指出,通过在IIS 8.5上托管有角度的应用程序,我也面临着同样的问题。这是IIS 8.5中属于Angular应用程序的web.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Angular Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/ApplicationName/"/>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

您能协助解决此问题吗?

1 个答案:

答案 0 :(得分:0)

这看起来像是CORS问题。

IIS需要发送标题Access-Control-Allow-Origin: *

也许这有助于在IIS中启用它: https://enable-cors.org/server_iis7.html