在PHP页面中检测AJAX请求
Detecting AJAX request in a PHP page?
这是检测AJAX请求的最可靠方法,还是在我的jQuery.AJAX代码中添加自定义标头更安全?
function isAjaxRequest() {
if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
return TRUE;
}
}
return FALSE;
}
我非常关心旧的浏览器和旧的PHP安装,因为我想让我的代码在尽可能多的情况下工作。
这是检测AJAX请求的最可靠方法吗
这几乎和你可能得到的一样确定。
还是在我的jQuery.ajax代码中添加自定义头更安全?
为什么重复努力?jQuery已经在添加该自定义标头。
忘记让服务器关心"Ajax"answers"Not Ajax"之间的区别,而不是关心(例如)"Want JSON"answers"Want HTML",会更干净。
您可以为此使用HTTP Accept标头。
没有安全的方法来检测Ajax请求
Ajax请求具有与GET/POST正常页面视图相同的模式。
以X_
开头的HTTP头是自定义字段,甚至没有在每个Ajax库中实现。
你不应该依赖这些信息,因此实现你想要实现的完全不同的方式。
我确实喜欢旧的浏览器和旧的PHP安装使我的代码在尽可能多的情况下工作。
如果这是你的目标,那就忘了头球。
最好和最短的答案就在我的旁边,来自Quentin:
忘记让服务器关心"Ajax"answers"非Ajax"之间的区别,而不是关心(例如)"想要JSON"answers"想要HTML"。
在互联网上,你根本无法问"你从哪里来,坐过哪趟车"并得到可靠的答案。互联网的设计并不是为了解决这种问题
public function getIsAjaxRequest()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest';
}
相关文章:
- 在PHP中检测AJAX请求来自哪个文件
- 如何在UIWebView中检测AJAX何时更新标题
- 检测ajax提交
- 创建插件以检测可疑的 AJAX
- jquery live 函数未检测到 AJAX 调用更改
- 检测ajax请求的跨域重定向
- 在PHP页面中检测AJAX请求
- JavaScript:检测 AJAX 请求
- 如何在不使用 DOM 突变事件的情况下检测 AJAX 节点插入
- 如何检测由新的获取标准发起的请求?我应该如何检测AJAX请求
- 如何使用JavaScript检测AJAX调用
- 检测ajax上传何时意外终止
- 在没有JQuery的NodeJS中检测AJAX请求
- 使Google Bot检测AJAX内容
- 检测ajax对普通请求节点js的请求
- 如何检测ajax错误是Access Control Allow Origin还是文件实际丢失
- 检测 Ajax 请求在 JavaScript 中是否失败
- 检测ajax响应的MIME类型
- 如何检测ajax请求上的php服务器超时
- 如何检测ajax驱动的网站