记一次 net::ERR_SPDY_PROTOCOL_ERROR bug

最近一次上线中有加入excel表格导出功能,本地ok,测试环境ok,生产环境是https,在chrome中点击导出按钮,https始终报错,如下图:net::ERR_SPDY_PROTOCOL_ERROR

image.png

想不通为什么,感觉像是https请求被阻止了。但是测试环境又没有这个问题,因为测试环境是http,但是在火狐和ie中却不存在找个问题,同样在postman中接口也是ok的,莫非强大的chrome对https作了什么限制?访问chrome://net-internals/#events工具,我的chrome版本是81,为了调试又重新下载了旧版 69.0.3497.81,在搜索框输入相应域名,再次点击导出,选中Source Type 是HTTP2_SESSION 的行。

记一次 net::ERR_SPDY_PROTOCOL_ERROR bug_第1张图片

在右边的日志中可以看到如下提示

t=  4891 [st=30]  HTTP2_SESSION_RECV_INVALID_HEADER
               --> error = "Invalid character 0x1A in header value."
               --> header_name = "content-disposition"
               --> header_value = "attachment;filename=%1AXa.V%B0U.xlsx"

提示Respone Header中属性为content-disposition的value值有非法字符,因为chrome浏览器对https的头信息解析严格,所以才会没有response返回直接报错net::ERR_SPDY_PROTOCOL_ERROR,问题终于找到了,开森。

你可能感兴趣的:(前端,http-2)