ajax使用函数中的this变量问题及其解决方法

原创 2015年11月21日 15:28:21

我们经常在使用ajax时,需要将里面返回的变量再重新赋值给函数中的公有变量,这边有个例子,大家可以看看


function classA {

this.name = "classA";

}


classA.prototype.getMessage = function() {

$.ajax({   
                type:"post",     
                url:
//请求url地址,可以为servlet地址,   
                success:
function(msg) {

  //msg为从servlet获取到的数据

   this.name = msg; //此时想将获取到的信息赋值给name属性

},   
                error:function(){   
                    alert("wrong");   
                }   
            });  

}


然而此时系统报错,提示找不到name属性"cannot read the property name",原因是因为此时的this所指的上下文是ajax作用域内的上下文,并不是classA中的上下文,因此此时找不到name属性就正常了。


这里需要对getMessage稍微做些调整就行

classA.prototype.getMessage = function() {

        var myname = this.name; //此时将this.name付给另外一个var变量

$.ajax({   
                type:"post",     
                url:
//请求url地址,可以为servlet地址,   
                success:
function(msg) {

  //msg为从servlet获取到的数据

   myname = msg; //此时想将获取到的信息赋值给name属性

},   
                error:function(){   
                    alert("wrong");   
                }   
            });  

}


这样在ajax不会再使用this指针,从而不会产生上面this指代错误的问题。var myname在ajax作用域相当于全局变量,可以直接使用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Vue---vuex+asiox发送请求

Vue---vuex+asiox发送请求

Vue-resource实现ajax请求和跨域请求--李帅醒博客

vue-resource是Vue提供的体格http请求插件,如同jQuery里的$.ajax,用来和后端交互数据的。 在使用时,首先需要安装vue-resource插件 1.在项目跟目录上安装: ...
  • wcslb
  • wcslb
  • 2017-02-13 21:37
  • 18204

jquery ajax 中 $(this) 不起作用

忍不住要分享一下一个奇怪的现象,那就是$(this)与ajax的冲突。 平时用$(this)的时候感觉很方便,很爽。例如,我们可以这样轻易获取某个元素的value值,$(this).val();可以...

javascript中的ajax的作用域问题

在进行ajax调用的时候,如果是在方法前定义的全局变量,方法依然无法获取到变量的值。 window.path = 'c:/text.txt'; $.ajax({ url : url, ...

ajax作用域 回调函数的返回值 异步传输时得不到值

很郁闷的问题如下:   function jsAlert() { var testNumber = 2; $.ajax({ ...

解决ajax方法内部不能给方法外部变量赋值的问题

//检查用户名是否注册 var isRegist = ""; $.ajax({ type: "POST", url:...

Jquery中ajax方法data参数的用法

$.ajax({    type: "POST",    url: "some.php",    data: "name=John&location=Boston",...

ajax url 参数传值

$.ajax({             url : 'http://21.203.1.47/gjs/example.php?id=va',//...

1:HTML 中 onclick 触发函数 xxx(param) 要传递对象参数的解决方法 2:LocalStorage存储JSON对象的问题 3:ajax请求传送参数为对象问题

在HTML 拼接中,有时会用到 onclick 事件绑定函数,并要其中传递参数。 简单的参数,例如:字符串 作为参数,传递没问题 但是如果传递的参数是一个对象,则就存在问题。会出现报错! 解决方式: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)