vue中使用axios,能够获取数据返回状态码为200,但是不执行then,执行了catch的问题?

    getDataFunc() {
      let that = this;
      
      axios.get('/api/test.php')
      .then(function(response) {
        console.log(response);
      })
      .catch(function(error) {
        console.log(error);
      });
    },

Network里面看响应码是200,且返回了json数据,但是没有执行then直接执行了catch,且error还是undefined。
————
想请问是什么原因?

阅读 11.7k
6 个回答

看一下你是给 axios 配了拦截器(interceptors)之类的么,感觉是拦截器里面抛出异常了。

控制台有报错吗?别是跨域了。

换原生的试一下呢?或者换其他库。响应的 content-type 是什么?

查看一下,你的axios.interceptors.response拦截器中是否有做抛出,一个是正常返回的response抛出,一个是error抛出

当then里出现代码错误时,也会进catch,比如某个对象不存在却给它赋值这种操作,就会进catchSnipaste_2020-03-31_15-13-57.png

应该是 then 里面的代码写的有错误,所以走了 catch。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题