[英]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.