上传文件时一直提示CORS错误,但其他跨域请求是正常的,原来是nginx配置的问题

今天想上传一段凑凑的影片时,总是提示我CORS错误,但是其他的跨域请求都是正常的!找了半天资料仍然没有发现问题,气得我都快吐血了!

扶墙吐血.jpg

检查后端CORS配置是正常的

我的CORS配置一直是这样写的,之前的其他跨域请求也没有出过错误,就很莫名奇妙,又重新查了其他的写法,也一直行不通。

springboot cors配置.pngSpringboot CORS配置

AllowOrigin指定了网站的三个域名,AllowMethods也都指定了,但仍然报错。。。

预检请求正常,实际请求报错

实际请求错误.png实际请求错误

实际请求错误提示.png实际请求错误提示

一直提示说

No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

但只有实际的请求报错,预检请求是正常的,我Google了半天也没发现有这样的问题出现,倒是有说Options请求200正常,但是头部不匹配的,可是很明显我的并不是这样的问题呀!

我开始怀疑不是CORS的问题

这样耽误了很久,我猛然想到如果其他的请求都是正常的,而只有上传的时候提示错误,上传的视频少说也有20MB,是不是文件大小的问题啊?因为我的请求都是通过nginx转发的,我记得nginx是有body大小的限制的,于是我查了一下nginx的默认body大小。。。

nginx body size limit default.pngnginx body limit

然后我试着改了一下nginx的配置:

change nginx body limit.png修改nginx max body size

然后重新试着上传了一下,果然他就正常了!
所以他为什么提示CORS错误。。。就很误导人啊淦!

总结

其实之前在公司做需求的时候就有遇到过nginx限制的body size小导致文件上传不了的问题,这次没有事先想到修改nginx配置也是不应该,还是经验太少。。。而且也是被浏览器唬人的提示带偏了方向,导致一直在错误的路上越走越远。。。

现在文件上传其实还是有问题的,现在如果上传的文件比较大,浏览器等一段时间没有得到服务器的响应,还是会上传失败,我认为应该把上传做成分片上传的,这块应该是有轮子的,等过段时间可以修改一下。

Comments

暂无评论

Leave a Reply
清除