无论如何都要检查传入的请求是否是AJAX JSON类型的?
我试过
if(($_SERVER['REQUEST_METHOD']=='JSON'))
{
}
但它不起作用。
有什么想法吗?
答案 0 :(得分:12)
你在哪里接受来自你不知道的请求?
您可以在脚本开头设置一个函数,尝试将数据导入为JSON或simplexml。如果它发现错误,你知道它是另一个......
第二个想法,让它测试它是JSON,simplexml会因为很多原因而抛出错误。
$json_request = (json_decode($request) != NULL) ? true : false;
答案 1 :(得分:8)
您需要从客户端设置标头。 jQuery和其他库设置了x-requested-with
标题:
if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
echo "Ajax request";
}
答案 2 :(得分:4)
你可以检查一下accept param,如果它是text / javascript你说话的json,如果是text / xml猜测是什么:P
$ _ SERVER [ 'HTTP_ACCEPT']
答案 3 :(得分:4)
您可以查看X-Requested-With
标题,某些图书馆,例如jQuery将其设置为"XMLHttpRequest"
。
$isAjaxRequest = $_SERVER['X_REQUESTED_WITH'] == 'XMLHttpRequest';
答案 4 :(得分:0)
尝试json_decode()
答案 5 :(得分:0)
您始终可以设置一个额外的标头来指定,或使用任意变量来指示JSON请求。