Home  >  Article  >  Backend Development  >  How to determine if php is ajax

How to determine if php is ajax

王林
王林Original
2019-09-21 11:49:413036browse

How to determine if php is ajax

Today I encountered the following code in M_Controller, so I learned a little about how to judge the differences between ajax requests, post requests, REQUEST_TIME and time() functions.

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() method is a method in CI to determine whether an ajax request is made. The official document explains it as: Check whether the server header contains HTTP_X_REQUESTED_WITH , returns TRUE if present, otherwise returns FALSE.

Of course, such a judgment is not perfect. The principle involved in the judgment is as follows:

When we send an ajax request through jquery, an ajax header named X-Requested-With information, the default content of the information is: XMLHttpRequest, which is the basis for the CI framework to judge ajax requests.

But how do we judge when we use native js?

xmlHttpRequest.setRequestHeader("request_type","ajax");

According to the XMLHttpRequest object, manually set the header. After the above settings are completed, we can obtain it as follows in the PHP logic code:

$_SERVER['HTTP_REQUEST_TYPE']

Obviously, the r# we set in the header ##equest_typeWhen obtaining in the background, add the prefix string of HTTP_ to obtain the Header information sent by the front desk, that is, by calling $_SERVER['HTTP_REQUEST_TYPE'] to get the header information sent by the front desk Value: ajax, of course request_type can also be set to other fields.

The above content is for reference only!

Recommended tutorial:

PHP video tutorial

The above is the detailed content of How to determine if php is ajax. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn