Вызов jQuery ajax не принимает буквенно-цифровые параметры!
-
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}
...
});
(Например,:Не заключайте свои данные в кавычки.Я почти уверен, что это не должна быть такая строка.)