AJAX-вызов JQuery не принимает буквенно-цифровые параметры! - PullRequest
3 голосов
/ 25 октября 2009

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 ]

4 голосов
/ 25 октября 2009

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

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

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

1 голос
/ 25 октября 2009

Я только что узнал, как решить эту проблему. Оказывается, я получаю сообщение об ошибке 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");
            }
        });

Спасибо, все равно.

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