【发布时间】:2020-06-17 14:35:36
【问题描述】:
我正在测试一个将图像文件上传到服务器的 REST Api。
图片太大,超过最大请求体大小,Nginx拒绝并返回响应413(Request Entity Too Large)。
Nginx:error.log
*329 客户端打算发送太大的正文:1432249 字节,客户端:xx.xx.xx.xx,服务器:api.example.com,请求:“POST /images HTTP/1.1”,主机:“api. example.com", referrer: "https://example.com/posts/create"
但是,我发现 firefox/chrome 控制台说,
Chrome:控制台
从源“https://example.com”访问“https://api.example.com/images”处的 XMLHttpRequest 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。
CORS 和 413 错误之间有什么联系吗?此消息来自哪里以及为什么?
【问题讨论】:
-
nginx 默认不会为 4xx 错误添加额外的响应头。因此,如果您希望 nginx 在 413 错误中包含 Access-Control-Allow-Origin 响应标头,则需要将
always参数附加到用于设置标头的指令:add_header Access-Control-Allow-Origin * always。在stackoverflow.com/a/53059844/441757查看答案
标签: nginx cors http-status-code-413