Home  >  Article  >  Backend Development  >  How to determine whether a request is an ajax request or a normal request in php_PHP tutorial

How to determine whether a request is an ajax request or a normal request in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:27:40722browse

/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...
}

Judgement of web page requests is simply achieved by passing the _GET parameter. 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 It is convenient for users to operate. 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 easy to use, 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 A link sets 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...
}
Use this to perform judgment operations to keep the URLs on the web page consistent , but it 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.
Here is another thing to pay attention to. The problem is that if your jquery request opens a 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 main content is:

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 through it 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 is through an iframe If you open a web page, the HTTP_X_REQUESTED_WITH parameter will not be passed, which means you have no way to determine the type of request.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/323734.htmlTechArticle/path/to/pkphp.com/script.php?ajax Use the following method to determine in the php script: Copy The code is as follows: if(isset($_GET['ajax'])) { ...this is an ajax request, then... } else { .....
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