当使用jquery调用此服务器端函数时,我收到“NetworkError:500 Internal Server Error - http://localhost:5963/default.aspx/Call”
<html>
<head>
<script src="scripts/jquery-1.2.6-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btn").click(function () {
$.ajax({
type: "POST",`enter code here`
url: "default.aspx/Call",
data: "{}",
contentType: "application/json; charset=utf-8",
async: true,
dataType: "json",
success: function (msg) {
alert("sdsd");
}
});
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:RadioButton runat="server" ID="btn" Text="A" />
</form>
</body>
</html>
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static void Call(string value)
{
var x = value;
}
答案 0 :(得分:3)
首先,这个脚本不会返回任何内容,因为您使用的是服务器控件的错误ID。呈现服务器控件时,它的id更改。 尝试使用:
$("#<%=btn.ClientID %>")
你还有另外一个问题。您正在调用重载的Web方法,因此您需要传递一些数据:
data: "{'value': 'somevalue'}",
希望这会有所帮助。
答案 1 :(得分:1)
此路径scripts/jquery-1.2.6-vsdoc.js
是否为您提供了正确的jQuery文件?看起来您正在尝试将vsdoc
文件作为普通库加载。
答案 2 :(得分:1)
您需要做的第一件事是使用FireBug控制台。这将告诉你错误是什么。
但是您的代码无效,因为您的返回类型为void
。您实际上需要将某些内容返回给客户端。将其更改为:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string Call(string value)
{
var x = value;
return x; // Silly example
}