当连接不良时,我在为 playcanvas 应用程序加载大 png 纹理文件时遇到问题。由于某种原因,铬浏览器说请求因 net::ERR_HTTP2_PROTOCOL_ERROR 而失败。我已经使用 Google Chrome(版本 92.0.4515.131)和 Microsoft Edge(版本 92.0.902.67)对此进行了测试。Firefox 没有这个问题并且可以正确加载文件。
我已经搜索了很长一段时间的解决方案,但找不到任何东西。在我看来,这实际上是铬的正常行为。
以下是网络分析选项卡的摘录:
编辑:
经过进一步调查,chrome://net-export
我得到了这个错误:
...
t=22930 [st= 9839] HTTP2_STREAM_UPDATE_RECV_WINDOW
--> delta = 2701
--> stream_id = 109
--> window_size = 5748580
t=22930 [st= 9839] HTTP2_STREAM_UPDATE_RECV_WINDOW
--> delta = 384
--> stream_id = 109
--> window_size = 5748964
t=22930 [st= 9839] -HTTP_TRANSACTION_READ_BODY
t=25482 [st=12391] HTTP2_STREAM_ERROR
--> description = "Server reset stream."
--> net_error = "ERR_HTTP2_PROTOCOL_ERROR"
--> stream_id = 109
t=35602 [st=22511] URL_REQUEST_JOB_FILTERED_BYTES_READ
--> byte_count = 65536
t=35602 [st=22511] HTTP_TRANSACTION_READ_BODY [dt=1]
t=45674 [st=32583] URL_REQUEST_JOB_FILTERED_BYTES_READ
--> byte_count = 65536
t=45675 [st=32584] HTTP_TRANSACTION_READ_BODY [dt=0]
t=53971 [st=40880] URL_REQUEST_JOB_FILTERED_BYTES_READ
--> byte_count = 65536
...
t=76985 [st=63894] HTTP_TRANSACTION_READ_BODY [dt=0]
t=80643 [st=67552] URL_REQUEST_JOB_FILTERED_BYTES_READ
--> byte_count = 65536
t=80643 [st=67552] HTTP_TRANSACTION_READ_BODY [dt=0]
t=83012 [st=69921] URL_REQUEST_JOB_FILTERED_BYTES_READ
--> byte_count = 57844
t=83012 [st=69921] HTTP_TRANSACTION_READ_BODY [dt=0]
--> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
t=83012 [st=69921] FAILED
--> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
t=83012 [st=69921] -REQUEST_ALIVE
--> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
编辑 2:我为这个错误创建了一个铬问题:https ://bugs.chromium.org/p/chromium/issues/detail?id=1237907