欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-17 18:48:38
...
下面是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,可能是这两个冲突了。谢谢大家的帮助。