如何使用httpclient从angular 5中的后端获取gzip数据
我正在尝试从后端获取压缩文件。请按以下方式查找httpclient的代码: 我尝试了标题中的多个选项,并使用不同的选项添加内容类型。但无法拿出准确的模板。我在AngularAPI中找不到任何与从服务器获取压缩数据相关的内容。请让我知道是否有人会提出类似的问题如何使用httpclient从angular 5中的后端获取gzip数据,angular,angular5,angular-httpclient,Angular,Angular5,Angular Httpclient,我正在尝试从后端获取压缩文件。请按以下方式查找httpclient的代码: 我尝试了标题中的多个选项,并使用不同的选项添加内容类型。但无法拿出准确的模板。我在AngularAPI中找不到任何与从服务器获取压缩数据相关的内容。请让我知道是否有人会提出类似的问题 getSpecialHeaders() { return new HttpHeaders({ 'Content-Encoding': 'gzip', 'specialHeader': '',
getSpecialHeaders() {
return new HttpHeaders({
'Content-Encoding': 'gzip',
'specialHeader': '',
'Content-Type': 'gzip'
});
}
getAllUnitsReport() {
//Function to get the gzip data
const headersSpl = this.getSpecialHeaders();
//httpoptions with different options tried in content-type and accept encoding
const httpOptions = {
headers : headersSpl };
return this.httpClient.get(envConfig.appURL.assetAdoption, httpOptions)
.catch((error) => {
return Observable.of(error);
});}
http调用成功后,我收到如下错误消息:
的Http失败响应(未知url):0未知错误
内容编码
头是服务器提供的响应头
通常,客户端提供一个Accept Encoding
头来指定要请求的内容编码
例如:接受编码:gzip,deflate
请参阅上的MDN
但是,这个特定的头被标记为一个,这意味着它不能由在浏览器中执行的Javascript以编程方式设置(但是仍然在节点中工作)
大多数浏览器会自动添加一个包含其支持的所有内容编码的
Accept Encoding
标题。浏览器不允许我设置Accept Encoding。这给了我错误:r拒绝设置不安全的标题“接受编码”,这是因为您的浏览器负责设置此标题(我已更新我的答案),谢谢您的回复。。在Browser中有其他解决此问题的方法吗?您的实际问题是什么?你没有在后端进行gzip压缩吗?尝试查看网络请求,并查看您正在发送和接收哪些头。后端可能配置不正确