使用ajax,xhr却没有响应
1.项目中用到了ajax。结果测试时候发现页面在两款浏览器中表现不一:360浏览器可以顺利实现弹窗(alert)效果,火狐浏览器却一点效果全无。但是他们都有一个共同特点:在浏览器的调试模式(F12)的网络选项xhr下没有得出任何的数据,而在网络的全部、html、css、js这些地方都可以看到有数据,包括index首页(POST),其他资源都是以GET获得。
2.使用了ThinkPHP的自动验证功能,错误会自动返回信息,包括没有输入用户名或没有输入密码,但是我没对账号密码进行比对,也不知道为什么在360浏览器中用户名和密码我随便乱输了数据,结果发现一个空白alert对话框出来,也不知道这是什么回事?
3.360浏览器中alert对话框出现的时候,xhr还是有数据的,但是当alert对话框点击确定后,xhr数据就随之消失。
代码如下:
(1)login.js
//前端登录业务类
var login={
checkUser:function(){
//获取登录页面中的输入数据
var userName=$('input[name="username"]').val();
var userPass=$('input[name="userpass"]').val();
//使用ajax
var url="/stfjzd-15/index.php/Home/Index/checkUser";
var data={"username":userName,"userpass":userPass};
$.post(url,data,function(result){
//$("#result").html(data.info).show();
//$("#result").fadeOut(4000);
if(result.status){
alert(result.info);
}else{
//alert(2);
alert(result.info);
}
},"json");
}
}
(2)IndexController.class.php
display();
}
//用户验证
public function checkUser(){
//接收变量,默认htmlspecialchars过滤
$userName=I("post.username");
$userPass=I("post.userpass");
$User=D("Stuser");
//ThinkPHP的自动验证必须使用create()才能启用
if(!$User->create()){
return $this->error($User->getError());
//exit($User->getError());
}
}
//空操作
public function _empty(){
echo "页面不存在,请检查您输入的路径是否正确,我要返回首页";
}
}
(3)StuserModel.class.php
DB=M("Stuser");
}
//ThinkPHP的表单自动验证
protected $_validate=array(
array("username","require","用户名不能为空"),
array("userpass","require","密码不能为空"),
);
}
?>
回复内容:
1.项目中用到了ajax。结果测试时候发现页面在两款浏览器中表现不一:360浏览器可以顺利实现弹窗(alert)效果,火狐浏览器却一点效果全无。但是他们都有一个共同特点:在浏览器的调试模式(F12)的网络选项xhr下没有得出任何的数据,而在网络的全部、html、css、js这些地方都可以看到有数据,包括index首页(POST),其他资源都是以GET获得。
2.使用了ThinkPHP的自动验证功能,错误会自动返回信息,包括没有输入用户名或没有输入密码,但是我没对账号密码进行比对,也不知道为什么在360浏览器中用户名和密码我随便乱输了数据,结果发现一个空白alert对话框出来,也不知道这是什么回事?
3.360浏览器中alert对话框出现的时候,xhr还是有数据的,但是当alert对话框点击确定后,xhr数据就随之消失。
代码如下:
(1)login.js
//前端登录业务类
var login={
checkUser:function(){
//获取登录页面中的输入数据
var userName=$('input[name="username"]').val();
var userPass=$('input[name="userpass"]').val();
//使用ajax
var url="/stfjzd-15/index.php/Home/Index/checkUser";
var data={"username":userName,"userpass":userPass};
$.post(url,data,function(result){
//$("#result").html(data.info).show();
//$("#result").fadeOut(4000);
if(result.status){
alert(result.info);
}else{
//alert(2);
alert(result.info);
}
},"json");
}
}
(2)IndexController.class.php
display();
}
//用户验证
public function checkUser(){
//接收变量,默认htmlspecialchars过滤
$userName=I("post.username");
$userPass=I("post.userpass");
$User=D("Stuser");
//ThinkPHP的自动验证必须使用create()才能启用
if(!$User->create()){
return $this->error($User->getError());
//exit($User->getError());
}
}
//空操作
public function _empty(){
echo "页面不存在,请检查您输入的路径是否正确,我要返回首页";
}
}
(3)StuserModel.class.php
DB=M("Stuser");
}
//ThinkPHP的表单自动验证
protected $_validate=array(
array("username","require","用户名不能为空"),
array("userpass","require","密码不能为空"),
);
}
?>
用$this->ajaxReturn()
或者json_encode
试试
上一篇: 解析Java初学者的30个常见问题
下一篇: 私家调试函数求优化