0

我开始将事情切换到[WebMethod]s 但开始遇到麻烦并决定我需要对如何正确使用它们进行更多研究。

我将以下内容放入$(document).ready()

                $.ajax({
                type: "POST",
                data: "{}",
                url: "http://localhost:3859/Default.aspx/ajxTest",
                dataType: "json",
                success: function (msg, status) {
                    alert(msg.name + " " + msg.value);
                },
                error: function (xhr, status, error) {
                    var somethingDarkside; //only to put a breakpoint in.
                    alert(xhr.statusText);

                }
            });

我的[WebMethod]

    [WebMethod]
    public static string ajxTest()
    {
        JavaScriptSerializer ser = new JavaScriptSerializer();
        DummyString dum = new DummyString("Please","Work");
        string jsonString = ser.Serialize(dum);
        return jsonString;
    }

我从来没有得到“请工作”。我得到“未定义的未定义”我可以在 VS 中调试并且调用进入[WebMethod],返回字符串对于 JSON 看起来是正确的,但我还没有能够成功调用它。我有解析错误,传输错误。一切都是不一致的,但从来没有什么是对的。我今天有多达 47 个不同的博客、SO 帖子和 google 组标签,我无法完全破解它。

xhr.statusText发布时状态正常。我收到一个status解析错误。我迷路了。

提前致谢。

编辑:jQuery 1.9.1

EDIT2:DummyString 对象

        public class DummyString
    {
        public string name { get; set; }
        public string value { get; set; }

        public DummyString(string n, string v)
        {
            name = n;
            value = v;
        }
    }

编辑3:我也有<asp:ScriptManager EnablePageMethods="true" ...

4

2 回答 2

1

简化为:

$.ajax({
    type: "POST",
    url: "Default.aspx/ajxTest",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        alert('success');
    },
    error: function (data) {
        alert('fail');
    }
});

[WebMethod]
public static string ajxTest()
{
    return @"{ ""hello"":""hola"" }";
}

和测试。(以上将起作用)

于 2013-08-22T15:09:09.723 回答
1

.d 参数中的服务返回响应尝试以下

msg.d.name
于 2013-08-22T15:19:01.567 回答