6

我正在测试一个将图像文件上传到服务器的 REST Api。

图片太大,超过最大请求体大小,Nginx 拒绝并返回响应 413(Request Entity Too Large)。

Nginx:错误日志

*329 客户端打算发送太大的正文:1432249 字节,客户端:xx.xx.xx.xx,服务器:api.example.com,请求:“POST /images HTTP/1.1”,主机:“api.example.com ”,推荐人:“ https://example.com/posts/create

但是,我发现 firefox/chrome 控制台说,

铬:控制台

从源“ https://example.com ”访问“ https://api.example.com/images ”处的 XMLHttpRequest已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头出现在请求的资源。

CORS和413错误之间有什么联系吗?此消息来自哪里,为什么?

4

2 回答 2

3

在这种情况下的问题是错误响应没有适当Access-Control-Allow-Origin的,因此请求应用程序没有查看它的权限。也就是说,即使是错误消息也受制于跨域策略。

于 2020-03-05T02:13:13.130 回答
1

此问题与 CORS 无关。如果您修复 413 错误,那么 CORS 错误也将自行修复。您需要检查为什么会出现 413 错误。图片上传的尺寸更大。您可以使用下面的代码来修复相同的在启动文件中添加下面的代码 -

.UseStartup<Startup>()
        .UseKestrel(options =>
        {
          options.Limits.MaxRequestBodySize = long.MaxValue;
        });

如果仍然没有修复,那么您需要检查服务器 repo 中的默认图像大小。它通常默认为 1mb。您可以增加 client_max_body_size。这将解决您的问题。

于 2020-04-18T06:28:32.303 回答