我正在编写自己的 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' ,除非它是不同类型的调用,例如 HTML 或 XML>.
最佳答案
使用 jQuery,您可以使用 $_SERVER['HTTP_X_REQUESTED_WITH']
,它将设置为“XMLHttpRequest”。这是使用 jQuery 时最可靠的方法。
关于php - 检测ajax请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17816515/