In diesem Artikel wird erklärt, wie PHP ermittelt, ob es sich um eine AJAX-Anfrage handelt. .
Von Jquery gesendete Ajax-Anfrage
jquery fügt dem Anforderungsheader X-Requested-With-Informationen hinzu, und der Informationsinhalt ist XMLHttpRequest, sodass PHP das globale Array $_SERVER verwenden kann Bestimmen Sie, ob es sich um eine Ajax-Anfrage handelt
//php bestimmt, ob es sich um eine Ajax-Anfrage handelt
if (isset($_SERVER["HTTP_X_REQUESTED_WITH"] && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"] == 'xmlhttprequest')){ // 是ajax请求 } else { // 不是ajax请求 }
Das erinnert mich also an die Konstante IS_AJAX in TP, die bestimmt, ob es eine Ajax-Anfrage ist eine Ajax-Anfrage
Hier sehen Sie, wie diese Konstante definiert ist
In ThinkPHP(3.2.2) in ThinkPHP/Library/Think/APP.class.php(Zeile: 49)
define('IS_AJAX', ((isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') || !emtpty($_POST(C('VAR_AJAX_SUBMIT')] || !empty($_GET[C('VAR_AJAX_SUBMIT')])) ? true : false);
Es ist ersichtlich, dass ThinkPHP dieses Prinzip verwendet oder es in der Form übermittelt
Ajax-Anfrage initiiert durch natives js
Sie müssen das hinzufügen Header-Informationen selbst anfordern, damit Sie im Hintergrund Urteile fällen können
Der Code zum Hinzufügen von Anforderungsheadern am Frontend lautet:
var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET","test.php",true); xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xmlhttp.send();
Dieser Artikel erklärt, wie PHP Bestimmt, ob es sich um eine AJAX-Anfrage handelt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Lösung für die Behandlung der vom PHP-Programm gemeldeten date()-Warnung
Tutorial zum schnellen Exportieren von Tabellendaten mit PHP
Das obige ist der detaillierte Inhalt vonWie stellt PHP fest, ob es sich um eine AJAX-Anfrage handelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!