Chrome 在使用流时拒绝使用 HTTP/2 获取上传

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

目前正在尝试创建一个简单的文件上传应用程序,我使用 S3 作为存储并使用 presigned-url 从客户端进行上传。

该应用程序是使用 SvelteKit 构建的,并使用 Fetch 进行上传。

const duplex = { duplex: 'half' };

const response = await fetch(url, {
  method: 'POST',
  body: file.stream(),
  headers: {
  'Content-Type': file.type
  },
  signal: this.abortController?.signal,
  ...duplex
});

在 Firefox 中运行应用程序时,它会正常上传,当尝试在 chrome 上运行它时,它会因 Quic/Http/2 错误而中断

net::ERR_H2_OR_QUIC_REQUIRED

两者都通过 Http 在本地主机上运行。我假设 chrome 有一些额外的保护措施,可以防止通过非 SSL 通道运行此类上传,因此我尝试部署该应用程序并通过 HTTPS 运行它,但它仍然可以在 Firefox 上运行,而不能在 chrome 上运行。

javascript google-chrome http fetch-api
1个回答
0
投票

就这么简单,使用 HTTPS url 而不是 HTTP url。

© www.soinside.com 2019 - 2024. All rights reserved.