php - 检测ajax请求

标签 php jquery ajax json

我正在编写自己的 MVC 框架来练习,并且我有一个 Request 类。我想捕获请求的类型并相应地解析数据,无论是 AJAX/JSON 调用还是 HTML/XML 请求。

我目前正在使用:

$_SERVER['HTTP_ACCEPT']

及以上当使用 var_dump 时,它返回 application/json 为此:

$.ajax({
    type: 'post',
    url: 'index',
    dataType: 'json',
    data: {
       _method: 'put'
    }
});

var_dump($_SERVER['HTTP_ACCEPT']) 返回:

string(46) "application/json, text/javascript, */*; q=0.01"

问题: 这个方法可靠吗?总是有效吗?检测这样的ajax调用是否存在安全问题?

请注意,我的框架中的所有 ajax 调用都必须具有 dataType: 'json' ,除非它是不同类型的调用,例如 HTMLXML>.

最佳答案

使用 jQuery,您可以使用 $_SERVER['HTTP_X_REQUESTED_WITH'] ,它将设置为“XMLHttpRequest”。这是使用 jQuery 时最可靠的方法。

关于php - 检测ajax请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17816515/

相关文章:

javascript - 滚动函数触发多次而不是一次

java - Spring Boot - 使用 ajax 调用流式传输视频

javascript - Bootstrap 3 下拉列表不更新

php - 使用 html 验证重复记录

php - 如何为 doctrine2 中的所有模型调用初始化方法?

javascript - 获取数据属性 == 某物的元素

jquery - 如果 .svg 失败,则显示 div 隐藏 'img'

php - 使用 Ajax 将数组发送到 PHP 脚本

javascript - 使用 AJAX 或类似技术来缩小现有列表的范围

php - 消息系统中如何处理删除?