Home  >  Article  >  Backend Development  >  halo theme mjolnir mix How to determine whether a request is an ajax request or a normal request in php

halo theme mjolnir mix How to determine whether a request is an ajax request or a normal request in php

WBOY
WBOYOriginal
2016-07-29 08:45:531228browse

/path/to/pkphp.com/script.php?ajax
Use the following method to determine in the php script:

Copy the code The code is as follows:


if(isset($_GET['ajax']) ) {
...This is an ajax request, then...
}
else {
...This is not an ajax request, then...
}


Simple implementation by passing the _GET parameter Determination of web page requests. But if you need such a function, this method may have drawbacks. The functional requirements are as follows:
1. The content of the web page requested through ajax is different from the content of the web page requested through ordinary requests. 2. The web page requested through ajax is for the convenience of user operations. The required content of the web page requested by the two methods is the same, except that 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 cannot provide a link. Set a URL with and without ajax judgment parameters. 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['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
..This is an ajax request, then...
}
else {
..this is not an ajax request then...
}
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')if( isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']
{
...This is an ajax request, then...
}
else {
...This is not an ajax request, then ...
}
Using this to perform judgment operations can keep the URLs on the web page consistent, but can obtain web pages with different contents for two different requests, which achieves user operation optimization without affecting search engine inclusion. , I think it is a great solution!
Another issue to note here is that if your jquery request opens the web page through an iframe, the HTTP_X_REQUESTED_WITH parameter will not be passed, which means you have no way to determine the request. Type.
The main contents are:
1.
There is a prerequisite for solving this problem, that is, the ajax framework you use must be jquery. In the jquery framework, for $.ajax, $.get, or When the $.post method requests web page content, 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 a normal request:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower ($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
2.
There is another issue that needs attention here, that is, if your jquery request opens the web page through an iframe, the HTTP_X_REQUESTED_WITH parameter will not be passed , which means you have no way to determine the type of request.
The above introduces the method of halo theme mjolnir mix to determine whether a request is an ajax request or a normal request in PHP, including the content of halo theme mjolnir mix. I hope it will be helpful to friends who are interested in PHP tutorials.

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