Heim > php教程 > PHP开发 > So ermitteln Sie, ob es sich bei einer Anfrage um eine Ajax-Anfrage oder eine normale Anfrage in PHP handelt

So ermitteln Sie, ob es sich bei einer Anfrage um eine Ajax-Anfrage oder eine normale Anfrage in PHP handelt

高洛峰
Freigeben: 2016-11-30 09:19:58
Original
1066 Leute haben es durchsucht

/path/to/pkphp.com/script.php?ajax
Verwenden Sie die folgende Methode, um im PHP-Skript zu ermitteln:
Kopieren Sie den Code. Der Code lautet wie folgt:
if(isset( $_GET['ajax' ])) {
...Das ist dann eine Ajax-Anfrage...
}
else {
...Das ist dann keine Ajax-Anfrage. ..
}

Die Beurteilung von Webseitenanfragen wird einfach durch Übergabe des _GET-Parameters implementiert. Wenn eine solche Funktion jedoch benötigt wird, kann diese Methode folgende Nachteile haben:
1 Der Inhalt der über Ajax angeforderten Webseite unterscheidet sich vom Inhalt der über normale Anforderungen angeforderten Webseite
2. Die über Ajax angeforderte Webseite ist für Benutzer bequem zu bedienen. Der erforderliche Inhalt der von beiden Methoden angeforderten Webseite ist derselbe, der Inhalt der von Ajax angeforderten Webseite ist jedoch relativ vereinfacht und einfach zu verwenden, und die große Rahmenvorlage der Webseite wird entfernt.
3. Der Zweck davon ist: Wenn der Benutzer die Webseite über Ajax bedient und die Suchmaschine auf die Webseite zugreift (entspricht dem Öffnen einer normalen Webseite), ist der erhaltene Inhalt eine vollständige Webseite (einschließlich). die große Rahmenvorlage der Webseite) ).
Um die obige Funktion abzuschließen, können Sie die zuvor eingeführte GET-Parameterübergabe nicht zur Beurteilung verwenden. Wenn Sie zur Beurteilung die GET-Übergabe verwenden, haben die Benutzer-Ajax-Anfrage und die normale Webseitenanforderung denselben Inhalt, da dies nicht möglich ist Ein Link legt eine URL mit und ohne Ajax-Beurteilungsparameter fest. Wie können wir diese Funktion implementieren? Dieses Problem muss durch serverseitige PHP-Beurteilung gelöst werden. Das heißt, ich werde heute darüber sprechen, wie PHP Ajax-Anfragen beurteilt. Für die Lösung dieses Problems gibt es eine Voraussetzung: Das von Ihnen verwendete Ajax-Framework muss jquery sein. Wenn im JQuery-Framework Webinhalte über die Methoden $.ajax, $.get oder $.post angefordert werden, wird ein HTTP_X_REQUESTED_WITH-Parameter an den Server übergeben. Sie können die folgende Methode verwenden, um festzustellen, ob es sich bei einer Anfrage um eine Ajax-Anfrage handelt oder eine Ajax-Anfrage. Gewöhnliche Anfrage:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
.. Dies ist eine Ajax-Anfrage, dann...
}
else {
..Dies ist keine Ajax-Anfrage, dann...
}
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
{
... Dies ist eine Ajax-Anfrage, dann...
}
else {
...Dies ist keine Ajax-Anfrage, dann...
}
Verwenden Sie dies, um Beurteilungsoperationen durchzuführen Behalten Sie die Konsistenz der URLs auf der Webseite bei, aber es können Webseiten mit unterschiedlichen Inhalten für zwei verschiedene Anfragen abgerufen werden, wodurch eine Optimierung des Benutzerbetriebs erreicht wird, ohne die Einbeziehung in Suchmaschinen zu beeinträchtigen.
Es gibt noch eine andere Sache Beachten Sie hier, dass das Problem darin besteht, dass der Parameter HTTP_X_REQUESTED_WITH nicht übergeben wird, wenn Ihre JQuery-Anfrage eine Webseite öffnet, was bedeutet, dass Sie keine Möglichkeit haben, den Typ der Anfrage zu bestimmen :

1. Es gibt eine Voraussetzung für die Lösung dieses Problems, das heißt, das von Ihnen verwendete Ajax-Framework muss jquery sein. Im Jquery-Framework können Sie Webseiten über $.ajax, $ anfordern .get- oder $.post-Methoden verwenden, wird ein HTTP_X_REQUESTED_WITH-Parameter an den Server übergeben. Sie können die folgende Methode verwenden, um zu bestimmen, ob es sich bei einer Anfrage um eine Ajax-Anfrage oder eine normale Anfrage handelt:
if(isset($_SERVER ['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER[ 'HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{

2.
Es gibt ein weiteres Problem, das Aufmerksamkeit erfordert, nämlich wenn Ihre JQuery-Anfrage öffnet die Webseite über einen Iframe, dann werden HTTP_X_REQUESTED_WITH-Parameter nicht übergeben, was bedeutet, dass Sie keine Möglichkeit haben, den Typ der Anfrage zu bestimmen. Bei Nachdruck bitte
angeben

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage