V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
wktrf
V2EX  ›  JavaScript

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

  •  
  •   wktrf · 2018-09-19 11:25:17 +08:00 · 9286 次点击
    这是一个创建于 2017 天前的主题,其中的信息可能已经有所发展或是发生改变。

    它返回的是一段字符串

    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 ?该如何解决这个问题?

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

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

    包含了
    1. 服务器返回错误
    2. js 运行错误
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3734 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:38 · PVG 18:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.