PHP检查传入请求是否为JSON类型

ar7v8xwq  于 2023-06-20  发布在  PHP
关注(0)|答案(6)|浏览(120)

是否有任何方法可以检查传入的请求是否为 AJAX JSON类型?
我尽力了

if(($_SERVER['REQUEST_METHOD']=='JSON'))
{
}

但是没有用。
有什么想法吗

zour9fqk

zour9fqk1#

你到底在哪里接受你不知道的请求?
您可以在脚本的开头有一个函数,尝试将数据导入为JSON或simplexml。如果它捕捉到一个错误,你知道它是另一个...
再想想,让它测试它是JSON,simplexml会抛出一个错误,原因很多。

$json_request = (json_decode($request) != NULL) ? true : false;
snz8szmq

snz8szmq2#

您需要从客户端设置头。jQuery和其他库设置了一个x-requested-with头文件:

if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
   echo "Ajax request";
}
pbpqsu0x

pbpqsu0x3#

你可以检查一下accept参数,如果是text/javascript,你会说json,如果是text/xml,你猜怎么着:P
$_SERVER['HTTP_ACCEPT']

xmakbtuz

xmakbtuz4#

你可以检查X-Requested-With头文件,一些库,比如jQuery将它设置为"XMLHttpRequest"

$isAjaxRequest = $_SERVER['X_REQUESTED_WITH'] == 'XMLHttpRequest';
2ul0zpep

2ul0zpep5#

你可以设置一个额外的头来指定,或者使用一个任意的变量来指示JSON请求。

cyvaqqii

cyvaqqii6#

试试json_decode()

相关问题