Запрос на УДАЛЕНИЕ в ajax, дающий 301 перемещенный ответ

StackOverflow https://stackoverflow.com/questions/3851070

  •  27-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь сделать запрос на удаление, используя ajax-метод jquery следующим образом

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

И когда я вижу консоль в Chrome, я нахожу в заголовках запросов, что вместо УДАЛЕНИЯ выполняется запрос GET.и в консоли firefox я вижу следующее.

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]

На стороне сервера я просто поддерживаю следующий код.

$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;
}

Я не вижу, чтобы запрос попадал в case 'DELETE'.Это переходит в case 'GET' вместо этого.

Ниже приведен файл .htaccess, который я использую на сервере для очистки URL-адресов.

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

Пожалуйста, помогите мне с отправкой запросов на УДАЛЕНИЕ.Спасибо!

Это было полезно?

Решение

Я понял это.:)

Проблема была с URL-адресом ('/tagz'), что я проходил мимо в $.ajax.Когда я изменил его на /tagz/ (добавлена еще одна косая черта в конце) он начал нормально работать в Chrome и Firefox.

Спасибо, ребята.

Другие советы

Способ удаления, очевидно, не поддерживается браузером Chrome.

Похоже, веб-сервер не позволяет удалить метод удаления. Почему вы не просто используете метод Post для всех ваших запросов и поставке вместо переменной «Action», который будет содержать действие, которое будет передано?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top