PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

thinkphp+jquery提交怎么一直在显示正在提交.

原创
2016-06-23 13:26:51 632浏览

下面是jquery代码

$.ajax({			type: "POST",			url: "/thinkphp/blog/User/Login/login",			dataType: "json",			data: {"user":admin_name,"pwd":admin_pass,"authcode":authcode},			beforeSend: function(){				$('
').addClass("loading").html("{:L('login_')}").css("color","#FF0000").appendTo('.login_btn'); }, success: function(json){ if(json.success==1){ $("#msg").remove(); $('
').addClass("notice_y").html(json.msg).appendTo('.div_c').fadeOut(3000); location.href="{:U('Index/index')}"; }else{ $("#msg").remove(); $('
').addClass("notice").html(json.msg).css("color","#FF0000").appendTo('.div_c').fadeOut(3000,function(){ return false; }); //location.href="{:U('Login/index')}"; //return false; } } });

下面是空php代码
//登陆验证	  public function login(){	    if(!IS_POST){		 $array['msg']='页面不存在';		 $array['success']=0;		 $this->ajaxReturn($array);		}		$user = I('admin_name','','htmlspecialchars','trim');		$pass = I('pwd','');		$verify = I('authcode','','htmlspecialchars','trim');		//检测验证码		if(!check_verify($verify)){		 $array['msg']=L('login_vcode_error');		 $array['success']=0;		 $this->ajaxReturn($array);		}		$admin = M('admin')->where(array('username'=>$user))->find();		//dump($admin);		//判断密码是否正确		if(!$admin || ($admin['password']) != md5($pass)){		 $array['msg']=L('login_fail');		 $array['success']=0;		 $this->ajaxReturn($array);		}		//判断是否被锁定	    elseif($user['IsLock']==1){		 $array['msg']=L('login_IsLock');		 $array['success']=0;		 $this->ajaxReturn($array);		}	  }

在点击登录的时候验证是可以验证,但是用户名密码这块一直提示“正在登录....”


回复讨论(解决方案)

在thinkPHP中,可以在js中用U方法吗??location.href="{:U('Index/index')}";
我记得tp3.0版本中是不能用的。

在thinkPHP中,可以在js中用U方法吗??location.href="{:U('Index/index')}";
我记得tp3.0版本中是不能用的。


目前看似可以用的,我的TP版本是3.2.3的,没提示什么错误

哪位告诉下呢,这个问题主要是后台接收不到ajax传的值,都是空值。


在thinkPHP中,可以在js中用U方法吗??location.href="{:U('Index/index')}";
我记得tp3.0版本中是不能用的。


目前看似可以用的,我的TP版本是3.2.3的,没提示什么错误

试一下把{:U('Index/index')}存到页面隐藏表单里

然后location.href=$('#myvalue').value;

把error函数也写进去看看

                    error: function(XMLHttpRequest, textStatus, errorThrown) {                        alert(XMLHttpRequest.status);                        alert(XMLHttpRequest.readyState);                        alert(textStatus);                    },

把error函数也写进去看看

                    error: function(XMLHttpRequest, textStatus, errorThrown) {                        alert(XMLHttpRequest.status);                        alert(XMLHttpRequest.readyState);                        alert(textStatus);                    },

你好,加上没什么反应,现在主要问题是后台接收不到ajax传过去的值,data: {"user":admin_name,"pwd":admin_pass,"authcode":authcode},这块值在控制器里面读取不到。

1、你是怎么知道数据没有传过去的?
2、目标 url 写的对吗?
/thinkphp/blog/User/Login/login ???

1、你是怎么知道数据没有传过去的?
2、目标 url 写的对吗?
/thinkphp/blog/User/Login/login ???


提交的时候验证码是可以验证,到验证密码的时候总是提示登录失败。
目标url我用的是U函数

数据表中的password字段是md5后的32位的吗?

数据表中的password字段是md5后的32位的吗?



是的,这个我用表单提交测试过了的

1、你是怎么知道数据没有传过去的?
2、目标 url 写的对吗?
/thinkphp/blog/User/Login/login ???


我的项目目录是User不知道跟这个user有关系吗?

验证码是可以验证,到验证密码的时候总是提示登录失败
$user = I('admin_name','','htmlspecialchars','trim');
$pass = I('pwd','');
$verify = I('authcode','','htmlspecialchars','trim');
先把success回调函数去掉,上面三个变量变量能不能在控制器打印出来??如果不能,去检查js部分的代码,如果能,检查login的代码。。。你说验证码可以验证,验证密码出错,是不是密码获取出了问题??

1、你是怎么知道数据没有传过去的?
2、目标 url 写的对吗?
/thinkphp/blog/User/Login/login ???

通过浏览器的debug查看请求的url地址是否正确。

地址都是对着,我最后又重新把所有的jqeury代码和控制器代码重写了一遍,没有出现问题了。我回忆了下,可能是js代码data:{}里面也得和控制器有出入,项目路径是User,我又在json里面又有一个user,可能是这两个冲突了。谢谢大家的帮助。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。