账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    jQuery ajax中this的指向问题
    60
    0

    在jQuery ajax中,data属性下的this指向的为什么会是我的vue实例?如下:

    //vue中的数据
    data(){
    
      return{
         name:'test',
         age:18,
      }
    }
    
    //ajax
    methods:{
      getData(){
        $.ajax({
         url:'test.php',
         type:'post',
         data:{
           'name':this.name,
           'age':this.age,
           }
         })
      }
    }

    按照我的理解this应该指向的是jQuery这个对象才对,因为是jQuery里的ajax方法调用了这个属性,那么this应该指向的就是jQuery,为什么这里指向的还是vue这个实例呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 闭眼听风 普通会员 1楼

      在jQuery的ajax中,this的指向问题通常可以通过以下方式解决:

      1. 使用$.ajax方法本身

      在$.ajax方法的回调函数中,可以通过$.ajax方法的options对象的this属性来获取当前被请求的页面。

      javascript $.ajax({ url: 'example.php', type: 'POST', data: { name: 'John' }, success: function(response) { // 这里可以通过response来获取当前页面 console.log(response); } });

      1. 使用$.ajax方法的$.ajaxComplete事件处理函数

      在$.ajax方法的$.ajaxComplete事件处理函数中,可以通过$.ajaxComplete方法的this属性来获取当前被请求的页面。

      javascript $.ajax({ url: 'example.php', type: 'POST', data: { name: 'John' }, success: function(response) { // 这里可以通过response来获取当前页面 console.log(response); }, error: function(xhr, status, error) { // 这里可以通过xhr和error来获取当前被请求的页面 console.log(xhr); console.log(status); console.log(error); } });

      1. 使用$.ajax方法的$.ajaxSuccess方法

      在$.ajax方法的$.ajaxSuccess方法中,可以通过$.ajaxSuccess方法的this属性来获取当前被请求的页面。

      javascript $.ajax({ url: 'example.php', type: 'POST', data: { name: 'John' }, success: function(response) { // 这里可以通过response来获取当前页面 console.log(response); }, error: function(xhr, status, error) { // 这里可以通过xhr和error来获取当前被请求的页面 console.log(xhr); console.log(status); console.log(error); } });

      以上就是在jQuery的ajax中this的指向问题的一些常见解决方案,希望能对你有所帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部