因為axios傳遞的參數是json格式的,后臺接受formdata形式的參數,所以在全局配置了axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';import qs from 'qs';axios.defaults.transformRequest = [function (data) {return qs.stringify(data)}];用qs把json數據轉化成form-data格式了。但是我現在在一個vue組里做圖片上傳的功能,代碼如下:onRead(file) { console.log(file); let param = new FormData(); param.append('file', file.file, file.file.name); param.append('userId', this.userInfo.userId); param.append('token', this.userInfo.token); let config = { header: {'Content-Type': 'multipart/form-data'} } let that = this; this.$http.post( that.baseUrl + '/user/headPicImg', param, config).then((res) => { console.log(res); that.imgSrc = 'http://116.62.208.141:8181/' + res.data.headImgPath || '../assets/imgs/gift.png'; }) }, 我在這里傳參格式已經是form-data的格式了。不需要使用全局配置的qs轉化了。我把全局配置改成如下 if(axios.method === 'post' && axios.data.constructor !== FormData){axios.defaults.transformRequest = [function (data) {return qs.stringify(data)}];}給轉化的條件加了限制,但是這樣一來,部分不是form-data傳參格式的接口 在這個判斷條件內但是并沒有被qs轉化成form-data格式的。請問我的判斷條件寫的有什么問題呢 ,怎么修改。
axios做圖片上傳問題
慕碼人8056858
2019-03-05 14:15:40
