Frage

Ich versuche, eine Löschanfrage mit Ajax-Methode von Jquery zu machen, wie folgt

$.ajax(
{
  type: 'DELETE',
  url: '/tagz',
  data: {id: taskId},
  success: function(data)
  {
    console.log(data);
  }
});

Und wenn ich die Konsole in Chrom sehen, die ich in den Request-Header finden, dass eine GET-Anfrage statt DELETE gemacht wird. und in firefox tröste ich folgendes zu sehen.

23:50:52:658: Network: DELETE http://test.goje87.com/tagz [HTTP/1.1 301 Moved Permanently 947ms]
23:50:53:614: Network: GET http://test.goje87.com/tagz/ [HTTP/1.1 200 OK 400ms]

Auf Server-Seite bin ich einfach den folgenden Code beibehalten wird.

$reqMethod = $_SERVER['REQUEST_METHOD'];

switch($reqMethod)
{
  case 'GET':
    Utils::printR('Will provide the resource.');
    selectObjects();
    break;
  case 'POST':
    Utils::printR('Will create a new record.');
    createObject();
    break;
  case 'PUT':
    Utils::printR('Will update the record.');
    break;
  case 'DELETE':
    Utils::printR('Will delete the record.');
    Utils::output($_SERVER);
    break;
}

Ich sehe nicht die Anforderung in die case 'DELETE' bekommen. Es wird in den case 'GET' statt.

Im Anschluss an der .htaccess-Datei, dass ich auf dem Server zum Zweck der sauberen Urls verwenden.

RewriteEngine on
RewriteRule ^(.*)$ index.php [L,QSA]

Bitte helfen Sie mir DELETE-Anfragen zu machen. Dank!

War es hilfreich?

Lösung

Ich habe es. :)

Das Problem war mit der URL ( '/tagz'), dass ich in $.ajax vorging. Als ich es /tagz/ geändert (hinzugefügt einen weiteren Schrägstrich am Ende) begann es funktioniert gut in Chrome und Firefox.

Danke Jungs.

Andere Tipps

Die DELETE-Methode ist offensichtlich nicht von dem Chrome-Browser unterstützt.

Es sieht aus wie der Web-Server nicht für DELETE-Methode erlaubt. Warum gehst du nicht nur POST-Methode für alle Ihre Anfragen verwenden und stattdessen eine Variable „Aktion“ liefern, der die Aktion enthalten wird geführt werden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top