这种问题通常发生在后端返回数据的格式不正确或者数据格式与axios.post请求中的responseType不一致的情况下。我们可以先在axios.post请求中设置responseType为'json',然后在response拦截器中进行数据格式的解析。以下是示例代码:
axios.post(url, data, {
responseType: 'json' // 设置responseType为json
}).then(response => {
// ...
}).catch(error => {
// ...
})
axios.interceptors.response.use(
response => {
// 数据解析
if (response.data && typeof response.data === 'string') {
response.data = JSON.parse(response.data)
}
return response
},
error => {
// ...
}
)
在拦截器中,可以检查response.data是否为空或者数据类型是否为字符串,如果满足条件,则进行数据解析。解析后的数据可以通过response.data访问。