如何从axios中的401错误捕获中调用vue中的方法?

时间:2018-08-21 15:15:56

标签: javascript authentication vue.js axios

我正在尝试的代码是这样;

axios({
                method:'get',
                url:'/user',
                baseURL:'https://api.github.com',
                auth:{
                    username:'username',
                    password:'password'
                }
            }).then((response)=>{
                this.errorMessage='';
                console.log(response);
            }).catch(function(error){
                this.errorMessage='Authentication failed';
            })

但是我不断收到错误消息:“未捕获(承诺)TypeError:无法设置未定义的属性'errorMessage'”

现在,通常的嫌疑犯已经解决;在数据上声明了“ errorMessage”,并赋予了“”值,因此并非如此。事物的响应部分上的“ this.errorMessage”有效(我对其进行了测试以证明“身份验证成功”),而事物的catch错误部分上却不起作用。

1 个答案:

答案 0 :(得分:0)

使用context关键字时,函数内部的

function会发生变化。使用箭头功能可使错误处理程序中的上下文与父范围保持相同。您在当时的处理程序上使用它,这就是它在那里工作的原因。

.catch((error)=>{
    this.errorMessage='Authentication failed';
})