最近在使用Vue進行網絡請求時遇到了一個奇怪的錯誤。代碼如下:
axios.get('/api/user')
.then(response =>{
console.log(response.data)
})
.catch(error =>{
console.log(error)
})
看起來很簡單的一段代碼,但是當我運行時卻出現了一個錯誤:
TypeError: Cannot read property 'data' of undefined
我嘗試了很多方法解決這個問題,包括檢查API接口是否正確,檢查網絡連接是否良好等等。但是沒有一個方法可以解決這個問題。
最后我在網上查找資料時發現了問題所在。原來是因為在使用axios進行網絡請求時,返回的數據格式與Vue默認的數據格式不一致導致的。Vue默認接受的數據格式是JSON響應,而API返回的是RAW格式的響應。因此,在axios請求中加入一行代碼:responseType: 'json' 即可將返回值轉換為JSON格式。
axios.get('/api/user', {
responseType: 'json'
})
.then(response =>{
console.log(response.data)
})
.catch(error =>{
console.log(error)
})
這一行簡單的代碼解決了我長時間的疑惑。在Vue中使用ajax進行網絡請求時,一定要注意返回數據的格式,否則可能會遇到類似的問題。
上一篇gsoap支持json
下一篇python 微信網頁版