PUT, DELETE Daten von Jquery nach PHP

7

Ich versuche, Jquery.ajax () mit PUT und DELETE-Methoden zu verwenden und einige Daten zusammen mit der Anfrage zu senden, aber auf der PHP-Seite, wenn die Anfrage gedruckt wird, kommt sie leer.

%Vor%

In PHP:

%Vor%

und ich bekomme ein leeres Array. Ich weiß nicht, ob es eine jQuery oder PHP-Sache ist oder einfach kann ich keine Daten senden. Ich weiß, DELETE-Methode soll verwendet werden, ohne zusätzliche Daten zu senden, aber hier wird jede Ajax-Anfrage an das gleiche Skript gesendet.

    
olanod 03.02.2012, 15:14
quelle

3 Antworten

16

Um den Inhalt des HTTP-Anfragekörpers von einer PUT-Anfrage in PHP abzurufen, können Sie keinen Superglobal wie $_POST oder $_GET oder $_REQUEST verwenden, weil ...

Es existiert kein PHP-Superglobal für PUT- oder DELETE-Request-Daten

Stattdessen müssen Sie den Anfragetext manuell von STDIN abrufen oder den php://input -Stream verwenden.

$_put = file_get_contents('php://input');

Das $_GET superglobal wird im Falle einer PUT- oder DELETE-Anfrage weiterhin ausgefüllt. Wenn Sie auf diese Werte zugreifen müssen, können Sie dies auf normale Weise tun. Mir ist nicht bekannt, wie jquery die Variablen mit einer DELETE-Anfrage versendet. Wenn also $_GET nicht gefüllt ist, können Sie stattdessen die Variable $_SERVER['QUERY_STRING'] manuell parsen oder einen benutzerdefinierten "action" -Parameter verwenden, wie von @ShankarSangoli vorgeschlagen um veraltete Browser zu berücksichtigen, die JavaScript nicht verwenden können, um eine DELETE-Anfrage an erster Stelle zu senden.

    
rdlowrey 03.02.2012, 15:42
quelle
4

Ich denke, DELETE type wird nicht vom gesamten Browser unterstützt. Ich würde einen zusätzlichen Parameter sagen action: delete . Probieren Sie es aus.

%Vor%     
ShankarSangoli 03.02.2012 15:18
quelle
3

Es könnte ein Browser-Problem sein, wie es in der jQuery-Dokumentation heißt:

  

Die Art der Anfrage ("POST" oder "GET"), Standard ist "GET". Hinweis: Andere HTTP-Anforderungsmethoden wie PUT und DELETE können hier ebenfalls verwendet werden, sie werden jedoch nicht von allen Browsern unterstützt.

Ссылка

    
DerDee 03.02.2012 15:17
quelle

Tags und Links