制作简单的ajax调用时遇到一些麻烦

时间:2013-08-22 15:05:20

标签: c# asp.net jquery webmethod

我开始将事情转移到[WebMethod]但开始遇到麻烦,并决定我需要做更多关于如何正确使用它们的研究。

我在$(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;
    }

我从来没有得到“请工作”。我得到“undefined undefined”我能够在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" ...

2 个答案:

答案 0 :(得分: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"" }";
}

并测试。 (以上将有效)

答案 1 :(得分:1)

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

msg.d.name