在使用axios進行網絡請求時,我們通常會把數據格式設置為JSON格式,并使用響應攔截器(response interceptor)將JSON數據解析成JavaScript對象進行操作。然而,在某些情況下,返回的數據可能不是JSON格式,這時就需要對數據進行處理。
使用axios發送請求時,除了可以設置請求頭和請求體等信息外,還可以設置返回數據的類型。如果服務器返回的數據類型不是JSON,我們可以在axios請求中設置responseType選項。
axios.get('/api/data', { responseType: 'text' }) .then(response =>{ console.log(response.data); }) .catch(error =>{ console.log(error); });
上述代碼中,我們把responseType設置為text,因為我們知道服務器返回的數據類型為文本。在success回調中,我們可以通過response.data獲取到服務器返回的數據并進行操作。
如果服務器返回的數據類型是XML或HTML,可以設置responseType為document,axios會自動將服務器返回的數據解析成DOM對象。在success回調中,我們同樣可以通過response.data獲取到DOM對象并進行操作。
axios.get('/api/data', { responseType: 'document' }) .then(response =>{ console.log(response.data.getElementsByTagName('h1')[0].textContent); }) .catch(error =>{ console.log(error); });
以上就是處理非JSON格式數據的方法。在使用axios發送網絡請求時,根據服務器返回的數據類型設置responseType選項即可。