记一次接口访问报跨域错误的问题
周五下午3点左右的时候,按照平时的要求开始往系统里上传数据,发现上传不上去了,提示报错。
打开开发者工具一看,是后台接口报错了,提示如下:

系统提示“Access-Control-Allow-Origin”这类问题, 应该是跨域问题。
找问题
然后找开发,因为之前好好的,突然不能用了,怀疑是不是谁更新版本了, 然后挨个问:
后端:我没改。
前端:我改了,但是应该不是我的问题。
大家:你改了,就是你的问题。
这个服务器的拓扑是通过frp进行的中转,同时在前端有一个nginx进行了代理。
在局域网中,是可以正常上传的文件,但是通过域名(frp+nginx)的方式,就无法上传文件(可以正常访问系统)。
于是大家开始纷纷找各种解决方案, 又说让nginx里加配置的,又说让前端里加参数的。
挨个试验了下。
nginx加了一下Access-Control-Allow-Origin的 * ,结果访问提示重复处理的域,连系统都无法登陆了。应该不是这里的问题,又改回来。
然后前端加参数,打了个新包放上去,问题依旧。
大家有点一筹莫展,看情况是系统都没有传到后端服务器,那怎么报错的呢?
在前端nginx里加一下访问日志吧,看看到底啥情况。
在域名对应的server节点下
先加上error_log的配置,一顿重启,发现没有errorlog,那咋回事?
再加上access_log的配置,再一顿重启,发现依旧没有内容,这又是咋回事?
看看nginx里的配置文件,http节点下有配置了access_log,直接从这个日志里看看内容是不是也可以。
打开一看,只记录到了上午的,后面没有了,好像有点不太正常。
这时候有点灵光一闪,好像知道啥问题了。
df -h 一下,果然磁盘已经100%了
解决
把各种临时文件一顿删除,果然可以上传东西了。
其他啥都没有动
总结:
因为前端的服务器只负责代理,其他文件存储、应用处理的都是后面的服务器管。所有没有往服务器那块想。
又因为系统是可以正常访问的,只有上传文件的时候才报错(上传文件也只是走个代理),所以迷惑性很强。
最后的教训:
不是报跨域问题,就是因为跨域的问题,也可能是服务器导致的。