除了可以从网络路径下载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>
您能协助解决此问题吗?
答案 0 :(得分:0)
这看起来像是CORS问题。
IIS需要发送标题Access-Control-Allow-Origin: *
也许这有助于在IIS中启用它: https://enable-cors.org/server_iis7.html