Апостроф вызывает проблемы в методе AJAX - PullRequest
0 голосов
/ 25 января 2019

У меня есть текстовое поле (txtDescription), где пользователь может ввести описание, когда событие отменяется.

Проблема заключается в том, что в этом текстовом поле есть апостроф с AJAX, который выдает ошибку.Без апострофа все работает и сохраняет нормально.

Я пытался использовать JSON.stringify, но это не сработало.

Это мой код:

$("#btnCancelEvent").click(function () {
    var CencelDesc = $("#txtDescription").val();
    var user = $("#lblFullName").html();

    if (CencelDesc === "") {
        alert("Please provide a reason why this schedule event is being canceled.");
        return false;
    } else {
        $.ajax({
            type: "POST",
            url: "ScheduleOverview.aspx/CancelEvent",
            data: "{'ScheduleID': '" + ScheduleID +
                "','CentreID': '" + CentreID +
                "','CencelDesc': '" + CencelDesc + //this is where the problem occurs
                "','user': '" + user + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                swal("Information", "Schedule Event Cancelled.", "success");
                $('#CancelSchedule').modal('hide');
            }
        });
        return false;
    }
    return false;
});

Пожалуйста, помогитекак я могу решить эту проблему.

1 Ответ

0 голосов
/ 25 января 2019

Два выпуска:

  1. JSON использует двойные кавычки, а не одинарные.
  2. Никогда не создавайте строки JSON вручную. Вместо этого постройте объект и позвольте JSON.stringify обработать выход и т. Д. Для вас.

Итак:

$.ajax({
    type: "POST",
    url: "ScheduleOverview.aspx/CancelEvent",
    data: JSON.stringify({ScheduleID: ScheduleID
        ,CentreID: CentreID
        ,CencelDesc: CencelDesc
        ,user: user }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {
        swal("Information", "Schedule Event Cancelled.", "success");
        $('#CancelSchedule').modal('hide');
    }
});

Примечание: нет необходимости в dataType: "json" в этом коде. Вы ничего не делаете с ответом. На самом деле, вообще, использование dataType - это анти-паттерн. Вместо этого убедитесь, что сервер отправляет обратно правильный заголовок Content-Type.

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