axios中this指向为undefined的问题

今天遇到的一个坑.

需要在得到接口返回的值时根据这个值进行判断跳转

想当然的想要使用this.$router.push("/verifynumber");来进行跳转,但是发现并没有什么用

console.log了this发现是undefined.

后来发现在axios中直接使用this,指向与之前的是不一样的,网上有很多解决方法,包括使用箭头函数.

而我使用了在函数一开始定义let that = this保存this,然后在之后的代码里直接使用that就可以了.

原文地址:https://www.cnblogs.com/leosworld/p/9217219.html

时间: 2024-08-09 22:29:29

axios中this指向为undefined的问题的相关文章

vue使用axios中 this 指向问题

1.解决办法 在vue中使用axios做网络请求的时候,会遇到this不指向vue,而为undefined,可以使用箭头函数"=>"来解决.如下: methods: { loginAction(formName) { this.$axios.post('http://127.0.0.1/u/subLogin', { username: this.username, password: this.password }) .then(function(response){ conso

JavaScript中this指向的简单理解

首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的,所以在你理解this的时候会有种琢磨不透的感觉),那么接下来我会深入的探讨这个问题. 为什么要学习this?如果你学过函数式编程,面向对象编程,那你肯定知道干什么用的,如果你没有学过,那么暂时可以不

关于js中this指向的理解总结!

关于js中this指向的理解! this是什么?定义:this是包含它的函数作为方法被调用时所属的对象. 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解有些准确的),那么接下来我会深入的探讨这个问题. 例子1: function a(){ var user = " 小明"; console.log(this.user);

JavaScript中this指向问题(函数的调用方式)

在ES6之前,函数内部的this是由函数的调用方式决定的 函数调用 var age = 18; var p ={ age : 15, say : function(){ console.log(this.age) } } var f1 = p.say; f1(); 这时是函数调用(是由window调用,即f1() = window.f1()). 此时结果为18,因为this指向window. 方法调用 var age = 18; var p ={ age : 15, say : function

js中this指向问题

js中this指向问题老生常谈的问题了,在这里说一下我所理解的层面的this. this 指的是当前对象,如果在全局范围内使用this,则指代当前页面window:如果在函数中使用this,则this指代什么是根据当前函数是在什么对象上调用.我们可以使用call和apply改变函数中this的具体指向. console.log(this === window) // true console.log(window.alert === this.alert) // true console.log

openCV中 libopencv-nonfree-dev的安装: undefined reference to `cv::initModule_nonfree()'

今天照着一起做RGB-D SLAM (3)    , 程序会出现下面的错误: cv::initModule_nonfree(); /home/yhzhao/slam/src/detectFeatures.cpp:32: undefined reference to `cv::initModule_nonfree()' 很奇怪,我在自己的libs文件夹里能够找到 libopencv_nonfree.so.2.4.9 . 但是在自己的cmake中 cmake 中 message("OpenCV_LI

ECLIPSE中部署工程报“Undefined exploded archive location”错误的解决方法。

错误信息为:Undefined exploded archive location 原因:在工程转移过程中,导致工程的配置文件出错: 解决方法:           1.在工程目录下的.mymetadata文件中可能webrootdir被改无效了(把下面内容拷到你的.mymetadate文件中的相应位置上):或者有可能少了这context-root这个属性:添加上这个属性即可,内容如下:             context-root="/上面的name属性值"          

js中的null和undefined

null为js中的keyword,表示空值.null能够看作是object类型的一个特殊值,假设一个object的值为null,表示这个对象不是有效的对象. 这里的null和0不是一回事.在c++中null通常定义为0,可是在js中并非这样. undefined不是jskeyword,其为一个全局变量,即Global的一个属性,一下3种情况会返回undefined: 1.使用了一个没有定义的变量: 2.使用了已经定义但未赋值的变量.             3.使用了一个对象属性.可是该属性不存

聊一聊js中的null、undefined与NaN

零.寒暄 翻翻自己的博客,上一篇竟然是六月26号的,说好的更新呢?回顾刚刚过去的这个七月,整天都是公司的入职培训加上自己的小论文,每天奋战到凌晨1点多,这是要挂的节奏啊!但是不论怎么说,自己的时间管理还是出了问题,以后一定要好好的规划一下,不多说,来正题! 自己为什么要写这篇文章呢?因为在吃完早饭,消化的时候,整了几行代码,然后发现整挂了... 大致代码如下: function getByClass(clsName, parent){ if(parent=="undefined"){