Проблема с отправкой данных с помощью ajax в приложение на asp .net core

182
28 ноября 2017, 23:57

Доброго времени суток. Проблема в том что в приложение не передаются данные из скрипта на js, вот код скрипта:

$.ajax({
    type: 'POST',
    url: 'Home/MessageHandler',
    data: "Test msg",
    success: function (data) {
        if (data == true) {
            alert("Сообщение доставлено");
            location.reload();
        }
        else {
            alert("Внимание! Сообщение не доставлено!");
        }
    },
    error: function () {
        alert("Произошел сбой");
    }
});

При запуске он переходит в ветку alert("Внимание! Сообщение не доставлено!");

Вот код контроллера который должен обработать сообщение:

[HttpPost]
public JsonResult MessageHandler(string data)
{
    Debug.WriteLine($"\n\nMessageHandler data: {data}\n\n");
    string result = "Сообщение " + data;
    return Json(result);
}

В чем может быть проблема?

Answer 1

Решил пробелму переписав контроллер так:

   public Object MessageHandler()
    {
        StreamReader sr = new StreamReader(Request.Body);
        string data = sr.ReadToEnd();
        string result = "Сообщение " + data;
        return result;
    }

Скрипт:

$.ajax({
    type: 'POST',
    url: 'Home/MessageHandler',
    data: "Test msg данные тут",
    success: function (data) {
        console.log(data)
    },
    error: function () {
        alert("Произошел сбой");
    }
});

Все работает но я не уверен что все сделал верно.

Answer 2

Для отладки лучше пользоваться консолью (console.log() например). Через алерт объекты не просмотришь, только строчные или приводящиеся к строчному виду данные (у объекта редко кто .toString() расписывает). А вот через консоль можно прогнать почти любой объект.

Касательно твоего вопроса. Проверяем в консольке:

-> "string response" == true
<- false

Ну что тут поделать, строка не равна

READ ALSO
Получение значения куки

Получение значения куки

На сайте есть функция добавления постов в избранныеДля хранения использую куки

241
Как убрать обертку list-view data-key yii2

Как убрать обертку list-view data-key yii2

Как убрать обертку list-view data-key yii2(оборачивает каждую итерацию) div data-key="id"

301
Как правильно настроить Apache Web Server для доменов?

Как правильно настроить Apache Web Server для доменов?

Пытаюсь настроить 2 домена для 2-ух сайтов: Имею данные настройки: MAC-OS Sierra как оперативкаПути к apache:

248
Открытие PDF в новой вкладке (php)

Открытие PDF в новой вкладке (php)

ПриветМне нужно открыть PDF в новой вкладке после его формирования на бэке

238