3

尝试像这样传递字母数字参数时,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 参数更改为纯数值时,它可以正常工作并调用成功回调。我想将字母数字值传递给服务器方法,这似乎不起作用。任何帮助,将不胜感激。

艾哈迈德

4

2 回答 2

4

你不应该像普通的 Javascript 字典那样传递数据吗?

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

(例如:不要在数据周围加上引号。我很确定它不应该是这样的字符串。)

于 2009-10-25T12:58:37.970 回答
1

我刚刚学会了如何解决这个问题。原来我收到一条 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");
            }
        });

总之谢谢大家。

于 2009-10-25T13:44:43.783 回答