Вызов jQuery ajax не принимает буквенно-цифровые параметры!

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

  •  06-07-2019
  •  | 
  •  

Вопрос

Похоже, jQuery выдает ошибку при попытке передать буквенно-цифровой параметр следующим образом:

            $.ajax({
                type: "POST",
                url: "Default.aspx/AjaxTest",
                data: "{eventID:9a5}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    alert(msg.d);
                },
                error: function(e) {
                    alert("Event could not be added to calendar");
                }
            });

когда вызывается описанный выше метод, вызывается обратный вызов с ошибкой.Однако, когда я меняю параметр EventID на чисто числовое значение, он работает нормально, и вызывается успешный обратный вызов.Я хотел бы передать буквенно-цифровое значение серверному методу, но, похоже, это не работает.Будем признательны за любую помощь.

Ахмед

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

Решение 2

Я только что узнал, как решить эту проблему.Оказывается, я получал сообщение об ошибке JSON:"Недопустимый примитив JSON".Мне пришлось добавить дополнительные одинарные кавычки вокруг моего строкового параметра, чтобы JSON понимал, что это строка, когда он десериализует ее.Я добавил одинарные кавычки вокруг своих буквенно-цифровых данных, чтобы JSON понимал, что это строка.Вот как в итоге заработал мой код:

        $.ajax({
            type: "POST",
            url: "Default.aspx/AjaxTest",
            data: "{eventID:'9a5'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                alert(msg.d);
            },
            error: function(e) {
                alert("Event could not be added to calendar");
            }
        });

В любом случае, всем спасибо.

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

Разве вы не должны передавать данные как обычный словарь Javascript?

$.ajax({
...
data: {"eventID": "9a5", "SomeNumericField": 25}
...
});

(Например,:Не заключайте свои данные в кавычки.Я почти уверен, что это не должна быть такая строка.)

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