Home > Article > Backend Development > Using ajax, xhr does not respond
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.
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>
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.
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