• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用ajax,xhr却没有响应

php 搞代码 4年前 (2022-01-23) 31次浏览 已收录 0个评论
文章目录[隐藏]

<body>

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

<code>//前端登录业务类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");  }}</code>

(2)IndexController.class.php

<code><?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {  public function index(){    $this->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 "页面不存在,请检查您输入的路径是否正确,我要返回首页";  }}</code>

(3)StuserModel.class.php

<code><?php  namespace Home\Model;  use Think\Model;  //用户表模型  class StuserModel extends Model{    //构造函数创建模型    public function __construct(){      $this->DB=M("Stuser");    }    //ThinkPHP的表单自动验证    protected $_validate=array(      array("username","require","用户名不能为空"),      array("userpass","require","密码不能为空"),    );  }?></code>

)本文来(源gaodai#ma#com搞@@代~&码*网2

搞代gaodaima码

回复内容:

<body>

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

<code>//前端登录业务类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");  }}</code>

(2)IndexController.class.php

<code><?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {  public function index(){    $this->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 "页面不存在,请检查您输入的路径是否正确,我要返回首页";  }}</code>

(3)StuserModel.class.php

<code><?php  namespace Home\Model;  use Think\Model;  //用户表模型  class StuserModel extends Model{    //构造函数创建模型    public function __construct(){      $this->DB=M("Stuser");    }    //ThinkPHP的表单自动验证    protected $_validate=array(      array("username","require","用户名不能为空"),      array("userpass","require","密码不能为空"),    );  }?></code>

$this->ajaxReturn()或者json_encode试试


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用ajax,xhr却没有响应

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址