Home >Backend Development >PHP Tutorial >Using ajax, xhr does not respond

Using ajax, xhr does not respond

WBOY
WBOYOriginal
2016-07-06 13:51:411448browse

1. Ajax is used in the project. As a result, during the test, it was found that the page performed differently in the two browsers: 360 Browser could successfully achieve the pop-up (alert) effect, but Firefox had no effect at all. But they all have one thing in common: no data is obtained under the network option xhr in the browser's debugging mode (F12), but data can be seen in all places on the network, html, css, and js, including index homepage (POST), other resources are obtained through GET.
2. Using the automatic verification function of ThinkPHP, the error will automatically return information, including no username or password entered, but I did not compare the account password, and I don’t know why the username and password in the 360 ​​browser I randomly entered the password and found a blank alert dialog box. I don’t know what is going on?
When the alert dialog box appears in the 3.360 browser, xhr still has data, but when OK is clicked on the alert dialog box, the xhr data disappears.
Using ajax, xhr does not respond
Using ajax, xhr does not respond

The code is as follows:
(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><?php
namespace 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 "页面不存在,请检查您输入的路径是否正确,我要返回<a href='"._PHP_FILE_."' alt='返回首页' title='返回首页'>首页</a>";
  }
}</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>

Reply content:

1. Ajax is used in the project. As a result, during the test, it was found that the page performed differently in the two browsers: 360 Browser could successfully achieve the pop-up (alert) effect, but Firefox had no effect at all. But they all have one thing in common: no data is obtained under the network option xhr in the browser's debugging mode (F12), but data can be seen in all places on the network, html, css, and js, including index homepage (POST), other resources are obtained through GET.
2. Using the automatic verification function of ThinkPHP, the error will automatically return information, including no username or password entered, but I did not compare the account password, and I don’t know why the username and password in the 360 ​​browser I randomly entered the password and found a blank alert dialog box. I don’t know what is going on?
When the alert dialog box appears in the 3.360 browser, xhr still has data, but when OK is clicked on the alert dialog box, the xhr data disappears.
Using ajax, xhr does not respond
Using ajax, xhr does not respond

The code is as follows:
(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><?php
namespace 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 "页面不存在,请检查您输入的路径是否正确,我要返回<a href='"._PHP_FILE_."' alt='返回首页' title='返回首页'>首页</a>";
  }
}</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>

Try using $this->ajaxReturn() or json_encode

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn