thinkphp - TP为什么接收不到ajax的数据?
本文介绍了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屋!
查看全文