【问题标题】:Angular gzip json file automatically : Refused to set unsafe header "Accept-Encoding"Angular gzip json 文件自动:拒绝设置不安全的标头“Accept-Encoding”
【发布时间】:2023-12-28 06:29:01
【问题描述】:

我在我的服务器(实际上是我的测试服务器)上使用了一个 gzip json 静态文件,我收到的数据总是被压缩的。

这是我的代码:

    $http({ 
      url :'app/assets/json/makes2v.json.gz',
      method: "GET",
      headers: { 'Accept-Encoding': 'gzip' }})
    .success(function(data, status, headers, config) {
      console.log(data);
  });

我使用 Angular 1.3.15 和 Chrome。

在控制台我有这个错误:

Refused to set unsafe header "Accept-Encoding"

我们将不胜感激。

谢谢,

【问题讨论】:

    标签: json angularjs gzip


    【解决方案1】:

    您不应将请求标头设置为“Accept-Encoding”。这是由浏览器自动设置的。请参阅此Q&A 以获取接受 gzip 的浏览器列表。

    在服务器端,您需要将 Content-Encoding 设置为:

    Content-Encoding: gzip
    

    那么响应应该会被浏览器自动解压。

    【讨论】:

    • 实际上,我使用通过 gulp 启动的测试服务器,如果可能的话,我会尝试这样做并提供反馈。谢谢
    • 如果这是来自我的 javascript 的 CORS 请求怎么办?浏览器会自动处理吗?如何验证它是否在响应中获取压缩数据?
    • 是的,这仍然适用。要检查响应,只需使用浏览器的开发控制台或流量检查工具(即:提琴手)。查看“Content-Encoding: gzip”或感兴趣的编码的响应头。
    最近更新 更多