Heim  >  Artikel  >  Backend-Entwicklung  >  PHP bestimmt, ob eine Anfrage eine Ajax-Anfrage oder eine normale Anfrage ist

PHP bestimmt, ob eine Anfrage eine Ajax-Anfrage oder eine normale Anfrage ist

伊谢尔伦
伊谢尔伦Original
2016-12-02 09:44:381031Durchsuche

/path/to/pkphp.com/script.php?ajax
Verwenden Sie die folgende Methode, um im PHP-Skript zu ermitteln:
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 Parameters _GET 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 von dem der normal angeforderten Webseite
2 Die über Ajax angeforderte Webseite ist für den 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 benutzerfreundlich , 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 normalen Öffnen der 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, heute werde ich 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.

Stellungnahme:
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