Axios 全局拦截出的错误返回是字符串而不是 JSON

2018-09-19 11:25:17 +08:00
 wktrf

它返回的是一段字符串

Error: Network Error
    at createError (createError.js:16)
    at XMLHttpRequest.handleError (xhr.js:87)

我看别人都错误配置都是:

axios.interceptors.response.use(response => response, error => {
	if(error.response.status){
    	// xxx
    }
})

这样的,为什么会返回错误的字符串而不是 JSON ?该如何解决这个问题?

9312 次点击
所在节点    JavaScript
5 条回复
passion336699
2018-09-19 11:38:06 +08:00
error.response.data 打印下这个你就看到了
wktrf
2018-09-19 11:46:03 +08:00
@passion336699 我直接打印的 error
leefly
2018-09-19 11:51:51 +08:00
if (error.response) ...
else if (error.request) ...
else ...
rain0002009
2018-09-19 12:04:03 +08:00
它抛出的是 Error 对象吧
你直接打印 Error 会调用 toString 方法的吧
xmsz
2018-09-19 13:59:03 +08:00

axios 有很多种错误
官网也有写你可以复制一下官方的错误处理

包含了
1. 服务器返回错误
2. js 运行错误

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490738

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX