环境:
- docker
- nginx
- vue3
- spring cloud
- oss - 阿里文件上传服务
场景:
上传文件大小 | 结果 | |
前端页面 | 小于1M | 正常 |
前端页面 | 大于1M | 报错 |
postman-调接口 | 大于1M | 正常 |
报错信息:
Access to XMLHttpRequest at 'https://ip:44300/base/file/image/uplode' from origin 'http://ip:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
原因:
nginx 默认上传大小为1m,超过1m报跨域错误
解决方案:
- Step 1 .修改docker中nginx的配置文件,在http{}中添加client_max_body_size 10m;
- Step 2 .重启nginx,这里我是容器nginx
执行: docker restart nginx 即可
nginx 知识点延伸:
client_max_body_size 可以设置在如下3个标签中,http作用域最大
配置 | 描述 | |
http{ } | client_max_body_size 20m; | 控制着所有nginx收到的请求 |
server{ } | client_max_body_size 20m; | 控制该server收到的请求报文大小 |
location{ } | client_max_body_size 20m; | 报文大小限制,只对匹配了location 路由规则的请求生效 |