$ .ajax с DELETE теряет параметры - PullRequest
8 голосов
/ 16 февраля 2010

В моем клиентском приложении - написанном на javascript и jQuery - у меня есть функция, где я выполняю запрос $ .ajax с методом DELETE на мой сервер.

Код выглядит примерно так:

    this.delete_one = function(id){
    console.log(id);
    $.ajax({
        url: sitesCtrl.url,
        type: "delete",
        dataType: 'json',
        data: {"id": id},
        success: function(data){
            if (data.success){
                $("sitesList").remove("#" + id + "\"");
            }
            else{
                console.log(data.message);
            }
        },
        error: function(){
            console.log("internal error");
        }
    })
};

Проблема в том, что сервер получает запрос без параметра "id"! Просто простое УДАЛЕНИЕ (согласно Firebug). с PUT, POST или GET он отлично работает.

1 Ответ

7 голосов
/ 16 февраля 2010

Интересно. Я ничего не могу найти в RFC , но вполне понятно, что невозможно передать параметры с помощью методов DELETE - только в GET и POST, поэтому либо JQuery, либо браузер правильно отфильтровывает параметры. Это всего лишь предположение, но, может быть, кто-то, кто знает это наизусть, может сделать более глубокое утверждение.

В любом случае, если именно так JQuery работает прямо сейчас, я думаю, что для обхода этой проблемы нужно будет вставить идентификатор в URL-адрес и модифицировать его.

Прежде чем сделать это, попробуйте, не можете ли вы обмануть браузер при его передаче, добавив параметр в URL : sitesCtrl.url+'?ID='+id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...