thinkphp - TP为什么接收不到ajax的数据?

查看:500
本文介绍了thinkphp - TP为什么接收不到ajax的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

当前页面点击<a id="login" href="Login/login">登录</a>后执行如下操作 为什么后台接收不到数据呢?这个{$Think.session.url2};是在当前home页面控制器下设置的 里面有值而且也能在前端输出 我本来想点击login时想弹出来看一下呢 结果没有弹窗直接就跳转过去了 我在login的操作方法里面也打印不出来任何ajax传过来的数据 $url=I('url');echo $url; 是ajax我哪里写的不对吗?我感觉也没错啊

<script type="text/javascript">
       function ajax(url,data,funsucc){
            var oAjax=new XMLHttpRequest();
            oAjax.open('post',url,true);                   
            oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
            oAjax.send("url="+data);    
            oAjax.onreadystatechange=function(){
              if(oAjax.readyState==4){
                if(oAjax.status==200){
                  funsucc(oAjax.responseText);
                }
              }
            }
        }
      }
</script>
<script type="text/javascript">
window.onload=function(){
   var oLogin=document.getElementById('login');
   oLogin.onclick=function(){
      oV1={$Think.session.url2};
      alert('oV1');
      ajax("{:U('Login/login')}",oV1,function(str){
        alert(str);                                  //这里不用返回数据 所以我就随便写的额
      });
    }
}
</script>

解决方案

<a id="login" href="Login/login">登录</a> 这里href 会使页面跳转, 你想传值并跳转,那么应该先传值,再跳转吧? 如果是这样的话, 可以这么做:

// 这里不做跳转
<a id="login" href="javascript:;">登录</a>


// 这回调里边
oLogin.onclick=function(){
  oV1={$Think.session.url2};
  alert('oV1');
  ajax("{:U('Login/login')}",oV1,function(str){
    alert(str);   
    // 这里成功传完数据之后, 通过js跳转
    window.location.href = 'Login/login';                             
  });
}

望采纳,谢谢!

这篇关于thinkphp - TP为什么接收不到ajax的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆