【问题标题】:How to set large Request Body for fetch API call如何为获取 API 调用设置大型请求正文
【发布时间】:2020-06-01 09:17:39
【问题描述】:

我有一个 fetch POST 正在发送一个大型 JSON 对象:

const body = JSON.stringify(largeItem); // 80MB

const request = new Request(uri, {
    mode: 'cors',
    method: 'POST',
    headers: new Headers({ 'Content-Type': 'application/json' }),
    credentials: 'same-origin',
    body
});

const response = await fetch(request);

这会导致错误:

source-file.ts:72 Uncaught (in promise) TypeError: Failed to fetch

当我在开发工具中查看此请求时,它看起来不完整 - 没有请求正文,并且大多数请求标头都丢失了。此外它没有状态码的错误,而是状态是:

(failed) net::ERR_CONNECTION_RESET

许多其他GETPOST 对具有相同凭据的相同资源的请求都可以正常工作。此代码适用于较小的body

我如何POST 一个带有大(在本例中为 80MB)JSON 正文的请求?

【问题讨论】:

    标签: javascript fetch-api


    【解决方案1】:

    我认为您的问题与 httpweb server(或者我猜是浏览器)限制有关

    请阅读此答案以了解我在说什么

    Can HTTP POST be limitless?

    【讨论】:

    • 太棒了,谢谢,这就是问题所在。我希望服务器为太大的请求返回 405 或类似的东西,但它只是完全拒绝连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    相关资源
    最近更新 更多