Heim  >  Artikel  >  Backend-Entwicklung  >  So ermitteln Sie, ob es sich um eine Ajax-Anfrage in PHP handelt

So ermitteln Sie, ob es sich um eine Ajax-Anfrage in PHP handelt

藏色散人
藏色散人Original
2021-09-01 09:28:113732Durchsuche

php判断是不是ajax请求的方法:1、通过“if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]){...}”方法判断;2、通过给头部添加xmlhttp信息进行判断。

So ermitteln Sie, ob es sich um eine Ajax-Anfrage in PHP handelt

本文操作环境:Windows7系统、PHP7.1版本、Dell G3电脑

php怎么判断是不是ajax请求?

PHP 判断是否为 AJAX 请求

先说前端使用 jQuery 时怎么区分:

  jQuery 发出 ajax 请求时,会在请求头部添加一个名为 X-Requested-With 的信息,信息内容为:XMLHttpRequest

  在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"] 来获取。(注意:中划线换成了下划线,不区分大小写)

  由此,我们可以这样来判断是否为 ajax 请求:

// php 判断是否为 ajax 请求  http://www.cnblogs.com/sosoft/
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ 
    // ajax 请求的处理方式 
}else{ 
    // 正常请求的处理方式 
};

 

在使用原生 JavaScript 发出 ajax 请求时,我们也可以给头部添加信息,以方便后端同学进行区分,方法如下:

 var xmlhttp=new XMLHttpRequest(); 
 xmlhttp.open("GET","test.php",true); 
 xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); 
 xmlhttp.send();

 

这里我们也一样是给头部添加 X_REQUESTED_WITH 信息,与 jQuery 的一致。当然你也可以更改为别的信息来进行区分。

 

  OK,进行区分之后有什么好处呢?说两个例子:

  1.当 js 文件未加载完时,用户点击了某个按钮或链接,本应是 ajax 请求的成了 正常请求,后端根据判断,不输出 ajax 时的 json 数据,而是跳转,这也是优雅降级的形式。

  2. [A 页面]使用 ajax 方式进行登录,[B 页面]使用正常方式登录,如果不区分,后端需要写两次几乎完全相同的代码,而有了区分,可以把重复的代码消掉。

开启PHP的伪静态 。

推荐:《PHP视频教程

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob es sich um eine Ajax-Anfrage in PHP handelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn