3 Stimmen

Gibt es einen zuverlässigen Weg zu wissen, ob eine Anfrage in einem Ajax-Kontext in PHP ist?

Ich muss mit diesen beiden Fällen unterschiedlich umgehen, gibt es eine gute Lösung?

6voto

Sergei Punkte 2779
if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { /* ajax request */ }

3voto

Asaph Punkte 153684

Ich kann mir 2 Möglichkeiten vorstellen, dies zu erreichen:

  • Auf der AJAX-Seite können Sie einen benutzerdefinierten HTTP-Header setzen mit [XMLHttpRequest.setRequestHeader()](https://developer.mozilla.org/en/XMLHttpRequest#setRequestHeader()) und überprüfen Sie dann das Vorhandensein dieses Headers auf der PHP-Seite mit getallheaders() um anzuzeigen, dass die Anfrage von einem AJAX-Client gestellt wurde. Wenn Ihr PHP-Skript die benutzerdefinierte Kopfzeile nicht findet, können Sie davon ausgehen, dass es sich um eine Nicht-AJAX-Anfrage handelt.

  • Wenn Sie die Anfrage in Ihrem Code erstellen, können Sie einfach eine Querystring-Variable anhängen, um die Art der Anfrage anzugeben, z. B. http://example.com/process?ajax=true für eine AJAX-Anfrage oder http://example.com/process?ajax=false für eine Nicht-AJAX-Anfrage.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X