对于一些API接口,通常检测是否为AJAX请求,一定程度上能提高下安全性。

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

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

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

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

// php 判断是否为 ajax 请求

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 的一致。当然你也可以更改为别的信息来进行区分。

php判断ajax传入,利用PHP判断是否为AJAX请求代码相关推荐

  1. php 判断是否文件,利用PHP判断文件是否为图片的方法总结

    前言 在网页设计中,如果需要图片,我们通常拿到的是一个图片的文件名.仅仅通过文件名是无法判断该文件是否是一个图片文件的.或许有的人以为通过后缀名就可以判断,别忘了文件的后缀名是可以随便改动的.更何况, ...

  2. 利用$ajax实现远程登录判断

    利用$ajax实现远程登录判断 <script> $(function(){                  var loginChage;         loginChage = $ ...

  3. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年

    利用函数翻转任意数组 利用函数冒泡排序 利用函数判断闰年 用户输入年份,输出当前年份2月份的天数

  4. java判断是否第一次出现_利用java判断字符首次出现的位置,java替换最后一个特定字符...

    利用java判断字符首次出现的位置利用爪哇判断字符首次出现的位置, 目的: (学习视频分享:java视频教程 实现代码如下: 导入Java.util.收藏品: 导入Java.util.LinkedLi ...

  5. Python(65)_写函数,判断用户传入列表的长度,若大于2,则仅保留前两个长度的内容,并将其返回给调用者...

    #-*-coding:utf-8-*- ''' 写函数,判断用户传入列表的长度,若大于2,则仅保留前两个长度的内容,并将其返回给调用者 ''' def func(l):return l[:2] # 其 ...

  6. c语言c判断字符数字,c语言问题求教 利用函数判断字符串中是否全为数字

    c语言问题求教 利用函数判断字符串中是否全为数字 答案:4  信息版本:手机版 解决时间 2018-12-22 19:42 已解决 2018-12-22 08:52 c语言问题求教 利用函数判断字符串 ...

  7. ajax实现注册用户名时动态显示用户名是否已经被注册(1、ajax可以实现我们常见的注册用户名动态判断)(2、jquery里面的ajax也是类似我们这样封装了的函数)...

    ajax实现注册用户名时动态显示用户名是否已经被注册(1.ajax可以实现我们常见的注册用户名动态判断)(2.jquery里面的ajax也是类似我们这样封装了的函数) 一.总结 1.ajax可以实现我 ...

  8. 人工智能数学基础:利用导数判断函数单调性、凹凸性、极值、最值和描绘函数图形

    一.单调性判断定理 定理: 设函数y=f(x)在[a,b]上连续,在(a,b)内可导. (1)如果在(a,b)内f(x)≥0,且等号仅在有限多个点处成立,那么函数y=f(x)在[a,b]上单调增加; ...

  9. 利用正交变换判断二次曲面类型

    利用正交变换判断二次曲面类型 正交变换是欧式空间保持向量内积不变的线性变换.不仅保持向量的长度不变,而且还保持向量 的夹角不变.二维或三维空间中的旋转变换.关于某一条直线或平面的对称变换都是正交变换. ...

最新文章

  1. SAP外币评估 fagl_fc_val 多评估与少评估问题
  2. 光速OFFER,为AI奔赴,商汤2022届校招提前批正式启动!
  3. 【学习笔记】抽象队列同步器AQS应用之BlockingQueue详解
  4. 读取csv绘制直方图_[python]用tushare接口绘制Bollinger Bands
  5. 成都理工大学c语言复试,2020年成都理工大学信号与信息处理考研真题试卷及试题答案,C语言程序设计考研试题下载...
  6. oracle备份磁盘头,oracle asm 磁盘头数据以及备份与恢复基础篇(2)
  7. Ansible批量在远程主机执行命令
  8. redis哨兵主从不切换_《「面试突击」—Redis篇》-- Redis的主从复制?哨兵机制?...
  9. igmp是哪个层协议_【干货】IGMPv1协议闲聊
  10. cad中计算机的快捷键,CAD常用快捷键汇总
  11. 基于微信公众号测试号进行微信授权登陆
  12. 三分钟看完北京城市(含京津冀)【总体规划2016-2050】
  13. c语言很简单只要一节课,计算机二级C语言考什么
  14. Python 从入门到放弃(三)
  15. 朋友圈一杠中间一个点_朋友圈只显示一条线 中间一个点 是被删除了么
  16. 【Web技术】前端水印实现方案
  17. Google Cast
  18. 嵌入式系统驱动高级【5】——input子系统
  19. 原型的概念以及为什么使用原型
  20. 餐饮店搭建会员营销系统有哪些优势?

热门文章

  1. ssm练手小项目_20 个 JavaScript+Html+CSS 练手的小项目
  2. mysql innodb 间隙锁_Mysql innodb 间隙锁
  3. python numpy库_numpy库学习总结(基础知识)
  4. 深度相机_深度相机(TOF)的工作原理
  5. hnu实验五 排队喝水
  6. 2020统计局的行政划分表_湖州市有几个区和县?湖州市2020年县级以上区划名单...
  7. Tensorflow:TensorFlow基础(一)
  8. 算法导论 思考题6-2
  9. Python监控文件变化:watchdog
  10. 【JVM】强引用、软引用、弱引用、虚引用分别是什么