使用Blob发送的Node.js Express.js中的CORS故障

问题描述

我们已经使用Angular 9应用程序在浏览器中录制了音频,并将其通过expressjs传递给nodejs API。

app.use(bodyParser.json());
app.use(cookieParser());
app.use(cors());

每当我发送音频记录(blob)超过8分钟时。 1分钟后,它开始请求,我在XHR Transferred中遇到了CORS失败。

如果音频长度小于8分钟,则没有错误,它请求API并保存了音频。

请帮助我解决这个问题。

谢谢

解决方法

让我们说,您的代码使用了CORS-npm,因此也启用了CORS。但是,如果代理(例如Ngnix或Apache)由于某种原因而无法将请求转发到基础代码(例如,超出了最大文件大小),则响应通常是502错误的网关,并且标头将没有CORS -允许标题。这可能是您偶尔看到此消息的原因。
首先,您可能需要使用文件大小设置,并确保允许将任何/可接受长度的文件从代理导入到您的代码库中。

这是您在NGinx中的操作方式:

http {
    ...
    client_max_body_size 100M;
}