H18 服务器请求中断

问题描述 投票:0回答:2

我的应用程序正在运行免费的 hobby-dev 程序和免费的 hobby-dev 数据库(https://orandno.herokuapp.com/Files)。

如果我在 POST 正文中发送一个小文件一切正常,但如果文件很大,我会收到错误 H18 - 服务器请求中断。

我在服务器端的 golang 代码现在几乎什么都不做:

func DBUploadFile(c *gin.Context) { c.JSON(200, gin.H{"已上传": "确定"}) 返回 }

Heroku 工作人员写信给我“上传的文件大小没有限制”... 但是为什么会出现H18错误呢?

heroku
2个回答
0
投票

Heroku 给出了更多可能导致该错误的原因,我建议您阅读该内容以获取更多说明H18 - 服务器请求中断,但是这个 answer 也应该可以解决您的问题。


0
投票

检查它是否在所有浏览器中都以相同的方式发生,或者是否只有一种浏览器。

就我而言,仅在使用

Chrome
时才收到 Server Request Interrupted 消息。但使用 Firefox、Safari、Edge 时则不然。

结果是 Chrome 在

zstd
中发送
Accept-Encoding
,而其他浏览器不发送它。我最终删除了服务器上的
zstd

Chrome request header
Accept-Encoding: gzip, deflate, br, zstd

Firefox request header
Accept-Encoding: gzip, deflate, br

我在heroku上使用django,并使用此中间件删除

zstd

class RemoveZstdEncodingMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        ae = request.META.get('HTTP_ACCEPT_ENCODING', '')
        if 'zstd' in ae:
            new_ae = ', '.join(enc for enc in ae.split(',') if 'zstd' not in enc)
            request.META['HTTP_ACCEPT_ENCODING'] = new_ae
        response = self.get_response(request)
        return response
© www.soinside.com 2019 - 2024. All rights reserved.