Home  >  Article  >  Backend Development  >  How to determine AJAX requests in PHP_PHP tutorial

How to determine AJAX requests in PHP_PHP tutorial

WBOY
WBOYOriginal
2016-07-15 13:25:46815browse

How to determine whether a web page request is an ajax request or a normal request in PHP? You can achieve this by passing parameters, for example, using the following URL request:

/path/to/pkphp.com/script.php?ajax

Use the following method to determine in the PHP script:

if(isset($_GET['ajax'])) {<br>…这是一个ajax请求,然后…<br>}<br>else {<br>…这不是一个ajax请求,然后…<br>}

By passing _GET The parameter method simply implements the judgment of web page requests. However, if such a function is needed, this method may have drawbacks. The functional requirements are as follows:

1. The content of the web page requested through ajax is different from that of the ordinary requested web page;

2. The web page requested through ajax is for the convenience of user operation. The required content of the web page requested by the two methods is the same, but the content of the web page requested by ajax is relatively simplified and used, and the large frame template of the web page is removed;

3. The purpose of this is: when the user operates the web page through ajax, and when the search engine accesses the web page (equivalent to opening a normal web page), the content obtained is a complete web page (including the large frame template of the web page).

To complete the above function, you cannot use the GET parameter passing introduced earlier to judge. If you use GET passing to judge, the user ajax request and the ordinary web page request will have the same content, because you It is impossible to set a URL with and without ajax judgment parameters for a link. So how can we implement this function? This problem must be solved through server-side PHP judgment. That is, today I will talk about how PHP judges ajax requests. There is a prerequisite for solving this problem, that is, the ajax framework you use must be jquery. In the jquery framework, when requesting web content through its $.ajax, $.get, or $.post method, it will pass an HTTP_X_REQUESTED_WITH parameter to the server. You can use the following method to determine whether a request is an ajax request or an ajax request. Ordinary request:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER<br>['HTTP_X_REQUESTED_WITH']) == ‘xmlhttprequest’)<br>{<br>…这是一个ajax请求,然后…<br>}<br>else {<br>…这不是一个ajax请求,然后…<br>}

Using this to perform judgment operations can keep the URL on the web page consistent, but you can get web pages with different content for two different requests. It achieves user operation optimization without affecting search engine inclusion. I think it is a great solution!

There is another issue that needs attention here, that is, if your jquery request opens a web page through an iframe, the HTTP_X_REQUESTED_WITH parameter will not be passed, which means that you have no way to determine the type of request.


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/446659.htmlTechArticleHow to determine whether a web page request is an ajax request or a normal request in PHP? You can do this by passing parameters, for example using the following URL request: /path/to/pkphp.com/script...
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