使用ajax错误发布到WebMethod

时间:2017-02-15 08:24:19

标签: c# asp.net ajax web-services webmethod

步骤1:

我已将我的脚本定义为:home.aspx页面:

function ShowCurrentTime() {
    var post = ({
        method: "POST",
        url: "home.aspx/GetData",
        dataType: 'json',
        data: { name: "Mobile" },
        headers: { "Content-Type": "application/json" },
        success: function (data) {
            alert("here" + data.d.toString());
            alert(data.d);
        },
        failure: function() {
            alert("Fail");
        }
    });
}

步骤2:

从按钮调用脚本函数:它位于home.aspx页面:

<input id="btnGetTime" type="button" value="Show Current Time" onclick="ShowCurrentTime()" />

步骤3:

home.aspx.cs页面定义的Web方法:

[System.Web.Services.WebMethod]
public static string GetData(string name)
{
    return "Welcome";
}

我得到了:

  

JavaScript运行时错误:无法获取未定义或属性'd'   空引用

2 个答案:

答案 0 :(得分:0)

您必须对数据进行字符串化:

data: JSON.stringify({ name: "Mobile" })

并使用像这样的ajax:

$.ajax({ ... });

更新完整脚本:

function ShowCurrentTime() {
    $.ajax({
        method: "POST",
        url: "home.aspx/GetData",
        dataType: 'json',
        data: JSON.stringify({ name: "Mobile" }),
        contentType: "application/json",
        success: function (data) {
            alert("here" + data.d.toString());
            alert(data.d);
        },
        failure: function() {
            alert("Fail");
        }
    });
}

答案 1 :(得分:-1)

试试这个并告诉我它是否有效:

ping -4 localhost