今天在M_Controller内碰到以下代码,故对怎样推断ajax要求,post要求及REQUEST_TIME于time()函数差异做了一下进修。
define('IS_AJAX', $this->input->is_ajax_request()); define('IS_POST', $_SERVER['REQUEST_METHOD'] == 'POST' && count($_POST) ? TRUE : FALSE); define('SYS_TIME', $_SERVER['REQUEST_TIME'] ? $_SERVER['REQUEST_TIME'] : time());
is_ajax_request()
要领是CI内推断是不是ajax要求的一种要领,官方文档关于它的诠释是:搜检服务器头中是不是含有HTTP_X_REQUESTED_WITH
,如果有返回TRUE,不然返回FALSE。
固然,如许的推断是不够完美的,涉及到推断的道理以下:
当我们经由过程jquery发送ajax要求时,会在要求头部增加一个名为 X-Requested-With 的信息,信息默许内容为:XMLHttpRequest,这是CI框架关于ajax要求推断的依据。
然则,当我们用原生js时怎样举行推断呢?
xmlHttpRequest.setRequestHeader("request_type","ajax");
依据XMLHttpRequest对象,手动举行头部设置,如上设置完成后,我们能够再PHP逻辑代码中以下猎取:
$_SERVER['HTTP_REQUEST_TYPE']
很明显,我们在头部设置的request_type
在背景猎取时,加上HTTP_的前置字符串,即可猎取到前台发送的Header信息,即经由过程挪用$_SERVER['HTTP_REQUEST_TYPE']
获得前台传值:ajax,固然request_type也能够自行设置为别的字段。
以上内容仅供参考!
引荐教程:PHP视频教程
以上就是php怎样推断是ajax的细致内容,更多请关注ki4网别的相干文章!