有无论如何检查传入请求是否是AJAX JSON类型?PHP检查传入请求是否是JSON类型
我试图
if(($_SERVER['REQUEST_METHOD']=='JSON'))
{
}
但没有奏效。
有什么想法?
有无论如何检查传入请求是否是AJAX JSON类型?PHP检查传入请求是否是JSON类型
我试图
if(($_SERVER['REQUEST_METHOD']=='JSON'))
{
}
但没有奏效。
有什么想法?
你是哪里,就是这样,你不知道接受请求?
您可以在脚本的开头尝试将数据导入为JSON或simplexml。如果它发现一个错误,你知道它是另一个...
第二个想法,它测试它是JSON,simplexml将抛出一个错误,原因很多。
$json_request = (json_decode($request) != NULL) ? true : false;
你可以在接受PARAM检查,如果它的文本/ JavaScript的你说话的JSON,如果它的文本/ xml的猜测:P
$ _ SERVER [ 'HTTP_ACCEPT']
假设JavaScript程序将正确设置XMLHttpRequest的标题,这是从来没有做过的(谁在乎?)。一般来说,服务器端脚本只能以一种格式回答,而我看不出有什么不同的原因。 – Havenard 2009-09-04 06:42:59
当您请求某个页面或服务(点击URL)时,它是一个标准过程,您应该指定您在请求中预期的结果类型。我曾经在许多Web服务上工作,用户期望XML或JSON中的信息,以便在请求参数中指定它。其他明智的是,他们必须提供URL的扩展名,比如说说 somesite.com/get_user[.xml |以.json。许多自由职业者,如泽西等在Java中,jQuery和几个PHP自定义卷发库都附加在请求(标准的通信方式)标题中的这些信息。在每个请求中传递额外的参数 – 2015-01-27 17:56:22
当浏览器使用任何站点的服务(或URL)进行通信时,他们会指定'text/html',如果dataType设置为json,jQuery会在请求头中设置'application/json', dataType:'json''及以上变量如下 'application/json,text/javascript,*/*; q = 0.01' 浏览器打开的URL将显示 'text/html,application/xhtml + xml,application/xml; q = 0.9,image/webp,*/*; q = 0.8' – 2015-01-27 18:00:55
尝试json_decode( )
您需要从客户端设置标题。 jQuery和其他图书馆设置x-requested-with
标题:
if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
echo "Ajax request";
}
你总是可以设置一个额外的头指定,或使用任意的变量来表示JSON请求。
http://stackoverflow.com/questions/1322863/what-is-the-best-way-inside-a-controller-to-know-if-the-request-is-a-xmlhttp-on – bobince 2009-09-04 09:10:32
注意,mime是application/json。 – Dykam 2009-09-04 09:30:48