最近在使用axios獲取mock中的json數據時,遇到了一些問題,即調用接口后無法獲取到數據。經過一番排查,發現問題出現在代碼邏輯中。
// axios配置 axios.defaults.baseURL = '/api' axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8' axios.defaults.withCredentials = true axios.interceptors.request.use( config =>{ // 處理請求前的邏輯 return config }, error =>{ // 請求錯誤時的處理邏輯 return Promise.reject(error) } ) axios.interceptors.response.use( response =>{ // 處理響應數據的邏輯 return response }, error =>{ // 處理響應錯誤的邏輯 return Promise.reject(error) } ) // 調用接口 axios.get('http://localhost:3000/api/data') .then(res =>{ console.log(res.data) }) .catch(error =>{ console.log(error) })
從以上代碼可以看出,我們使用了axios的相關配置,但在調用接口時,傳入的地址為'http://localhost:3000/api/data',實際上這個地址并不存在。理論上,應該傳入的是'/api/data',而不是'http://localhost:3000/api/data'。
修改上述代碼后,即可順利獲取到mock中的json數據。因此,我們在使用axios時,需要注意接口地址的傳入方式,避免出現類似的問題。