繁体   English   中英

服务器端功能无法使用jQuery Ajax

[英]Server side function is not working using jquery ajax

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
    $.ajax({
        type: "POST",
        url: "Default.aspx/jsonrep",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        cache: false,
        success: OnSuccess,
        failure: function (response) {
            alert(response.d);
        }
    });
  }
  function OnSuccess(response) {
    alert(response.d);
  }
</script> 

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

和代码文件代码是

[System.Web.Services.WebMethod]
public string jsonrep()
{
    GetOrders();
    var jsonSerialiser = new JavaScriptSerializer();

    var json = jsonSerialiser.Serialize(list);

    return json.ToString();
}

public List<DataProp> GetOrders()
{
    DataProp o = new DataProp();

    for (int i = 1; i <= 8; i++)
    {
        o.Earning = 20000 * i;
        o.Number = 8 * i;
        list.Add(o);
    }

    return list;
}

我想使用jQuery调用服务器端函数,该函数返回json对象,但函数不起作用-我在做什么错? 如果我在页面加载时调用函数,则该函数返回json数据的效果很好。 请帮忙

您在此行中缺少static引用:

public string jsonrep()

更改为

public static string jsonrep()

如果您想知道为什么您的方法需要是静态的,请查看此链接 从链接:

静态方法就是与它的包含类的任何实例无关的方法。 更常见的替代方法是实例方法,该方法的结果取决于其所属类的特定实例的状态。 从某种意义上说,静态方法是无状态方法。

因此,JS仅理解静态方法,因为只有静态方法可以在没有类引用的情况下实例化。

如果您想使用非静态的东西,建议您使用asmx服务/ ashx处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM