Axios是一個(gè)基于Promise的HTTP客戶(hù)端,可用于瀏覽器和Node.js中。在使用Axios時(shí),我們經(jīng)常需要將返回的數(shù)據(jù)轉(zhuǎn)換為JSON格式。
使用Axios的時(shí)候,我們可以設(shè)置一些默認(rèn)配置,如超時(shí)時(shí)間等。同時(shí),還可以定義響應(yīng)攔截器,對(duì)返回的數(shù)據(jù)進(jìn)行處理。
import axios from 'axios'; // 設(shè)置默認(rèn)超時(shí)時(shí)間 axios.defaults.timeout = 5000; // 定義響應(yīng)攔截器 axios.interceptors.response.use( response =>{ // 對(duì)返回的數(shù)據(jù)進(jìn)行處理 const data = JSON.parse(response.data); return data; }, error =>{ return Promise.reject(error); } ); // 發(fā)送GET請(qǐng)求 axios.get('/api/user').then(res =>{ console.log(res); });
在響應(yīng)攔截器內(nèi),我們使用JSON.parse()方法將返回的數(shù)據(jù)轉(zhuǎn)換為JSON格式。
當(dāng)然,Axios也提供了一個(gè)簡(jiǎn)單的方法用于轉(zhuǎn)換數(shù)據(jù)。我們只需要在請(qǐng)求配置中設(shè)置responseType為'json'即可:
import axios from 'axios'; // 發(fā)送GET請(qǐng)求并轉(zhuǎn)換為JSON格式 axios.get('/api/user', { responseType: 'json' }).then(res =>{ console.log(res.data); });
這種方式比手動(dòng)進(jìn)行轉(zhuǎn)換更簡(jiǎn)單,尤其是在處理大量數(shù)據(jù)時(shí)。但也要注意,當(dāng)返回的數(shù)據(jù)不是有效的JSON格式時(shí),會(huì)產(chǎn)生一個(gè)JSON.parse()錯(cuò)誤。