关于 Chrome 报错ERR_INCOMPLETE CHUNKED_ENCODING 的解决方案

 有没有榴莲千层  Linux操作系统  2016-11-09  13834  发表评论
今天服务器发现出现这个问题,代码测试了几遍,测试都没有问题,正式服务器有问题,最后谷歌到解决思路,就是修改nginx参数之类,增大请求返回数据量

背景

今天遇到一个 bug ,这个 bug 很神奇,在 Chrome 下刷新项目页时会报错 net::ERR_INCOMPLETE_CHUNKED_ENCODING而显示不出网页,在 Safari 和 Firefox 下正常。查了一下这个错误的网上的解决方案。众说纷纭比较多,由于这个 bug 着实查着改了很久..这里进行一个总结,来帮助可能被坑的后来人。

BUG 描述及解决办法

在某项目页中,后台传给我了一串比较长的 json 数据,我在处理这些数据,刷新页面时 Chrome 意外报错 net::ERR_INCOMPLETE_CHUNKED_ENCODING。页面加载不了 DOM 结构。在 Firefox 及 Safari 上加载正常。

在调试后发现,报错原因在于 json 数据在 Chrome 接收的过程中会被随机截断,不能加载完全的 json 数据。导致 json 结构报错。

报错提示

这里参考我的尝试步骤以及网上的部分可行的办法来推荐尝试:

1.关闭杀毒软件

2.关闭 Chrome 高级设置里的 “预提取资源,以便更快速的加载网页”

3.关闭 Chrome 扩展程序或停用代理类扩展

4.设置 header 报表头 content-length

1
2
3
<?php
header('Content-length: ' . strlen($output));
?>

5.nginx fastcgi buffer 的设置

6.nginx 打开 gzip


----------------------------------------------------

附上nginx配置:


user  www www;

worker_processes  1;


pid        pid路径; #自行修改



worker_rlimit_nofile 65535;


events 

{

  use epoll;

  worker_connections 65535;

}



http {

    include       mime.types文件路径; #自行修改

    default_type  application/octet-stream;


server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 800m;



sendfile on;

tcp_nopush     on;


keepalive_timeout 65;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;


open_file_cache max=65535 inactive=20s;

open_file_cache_valid 30s;

open_file_cache_min_uses 1;


tcp_nodelay on;


gzip on;

gzip_min_length  1k;

gzip_buffers     4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types       text/plain application/x-javascript text/css application/xml;

gzip_vary on;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';


    access_log  access.log文件路径;  main; #自行修改


    include 虚拟主机配置文件; #自行修改

}


所有评论
加载评论 ...
发表评论