vue下axios上传文件

上传文件不成功,把form的格式改成enctype="multipart/form-data"这样都不行。找原因摘来找去是因为我封装了axios,有请求拦截,给拦截掉了,找到一个axios封装上传文件请求的,下面代码时axios.js中的。

vue下axios上传文件

注:axios设置baseURL时注意,这个设置成固定的会有问题,当你的网站是https请求时你要设置成https协议,是http请求时你要设置成http协议,当你的网站只是一种协议可以请求时可以固定,但是当你的网站两个协议都可以请求时就不能写si了。

比如:axios.defaults.baseURL = 'https://www.***.com/'(写si(固定))

但是,在本地时要写成固定的,不然请求不成功。

打包上线时改成灵活性的,不论你是一种请求协议还是两种;axios.defaults.baseURL = window.location.origin(前提是封装axios)

继续form。

一般,headers中的'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8',这种格式的请求参数是不支持文件类型的。在这里一定要把headers中的'Content-Type'设置成 'multipart/form-data',不然请求不成功,x-manager-token这个字段也不是固定的,是你们后端要求带的token的键名(键值对,前面是键,后面是值,都知道的),不要求带就不加。

页面请求时:

vue下axios上传文件