Не получаете Web API HttpResponseMessage в ajax?

0

Первые попытки веб-API и немного запутались.

Я установил базовое удаление в Web Api:

public HttpResponseMessage Delete(string id)
{
    HttpResponseMessage response = new HttpResponseMessage();
    response.ReasonPhrase = "User successfully deleted";
    response.StatusCode = HttpStatusCode.OK;

    return response;
}

и называя его через jquery ajax:

deleteUser: function (data) {
    var self = this;
    $.ajax({
        type: "DELETE",
        url: urlPath + data.Id,
        success: function (response) {
            alert("Success: " + response.status + " : " + response.statusText);
        },
        error: function (response) {
            alert("Error: " + response.status + " : " + response.statusText);
        }
    });
}

Это работает... Инструменты разработчика Chrome говорят, что StatusCode: 200 Пользователь успешно удален.

К сожалению, предупреждение от ajax-успеха просто говорит "Успех: неопределенный: неопределенный", а при нарушении функции успеха в Chrome ответ var пуст

Как получить код состояния/сообщение в вызове ajax для отображения на экране?

благодаря

  • 0
    вместо response.statusText попробуйте response.responseText
Теги:
asp.net-mvc
asp.net-mvc-5
asp.net-web-api2

1 ответ

2
Лучший ответ

Параметры функции обратного вызова jQuery ajax.success:

function(PlainObject data, String textStatus, jqXHR jqXHR)

Как вы можете видеть, первым параметром является тело необработанного ответа. если вам нужен код и текст состояния HTTP, используйте данные jqXHR (третий параметр):

success: function(data, status, xhr)
         {
         alert("Success: " + xhr.status + " : " + xhr.statusText);
         }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню