Chrome 72 73版本 provisional headers are shown及(failed) net:ERR_INVALID_HTTP_RESPONSE问题
Tag
#boa #post #request #response #ajax #provisional headers are shown #net:ERR_INVALID_HTTP_RESPONSE #chrome
问题描述
Chrome72 73版本浏览器登陆路由器页面,所有的post请求都没有response(提交无反应或返回failed to load),通过开发人员工具,在network面板中看到前端Request Header提示provisional headers are shown,状态码显示(failed) net:ERR_INVALID_HTTP_RESPONSE
该路由器后端Web server是boa
正常的请求和响应如下:
解决过程
1、请求被扩展程序拦截
【NO】 经验证,高版本无插件的浏览器中也同样存在问题,所以排除这种情况
2、服务器超时或未响应
【NO】 无论浏览器请求成功或失败,都可以通过wireshark抓到response包,后端相关表单接口都能被调用,可以排除
3、请求未正常发送,使用本地缓存
【NO】 原因同上,也可以排除该问题
4、提交请求触发表单提交的同时又通过ajax提交了请求
【NO】 前端表单只通过submit触发
5、跨域请求被拦截
【NO】 相关页面并没有跨域请求,且所有跨域请求均通过后端配置了Access-Control-Allow-Origin: * 字段
相关的文章或论坛所提到的可能是基本上是以上几种情况,都不是该问题所要寻找的答案。因此有了本文,给遇到同样问题的朋友一点启发。
根据转包信息和浏览器错误信息可以猜测,升级后的浏览器无法解析boa返回的response包,所以要么是浏览器本身的问题(可能是某些配置导致),要么是response包头的问题。
因为谷歌72以下版本及其它主流浏览器都可以正常收到response,我假设该版本浏览器存在问题,于是通过chrome Net Internals工具分析错误信息(事实上70+版本浏览器已经不能通过chrome://net-internals直接查看),跟踪到chrome相关源代码,依旧没有找到答案。
无意间在netgear论坛一篇帖子中发现了问题所在,原文如下:
There is an emerging issue for users of Google Chrome