Javascript 使用ajax调用WebMethod时出现500内部服务器错误
我的C#WebMethod在代码隐藏方面遇到问题,导致500个内部服务器错误。我真的不明白为什么它不会击中它,所以如果有人能告诉我是什么问题,那就太好了 因此,这是我的ajax调用,即使数据和数据类型没有注释掉,也不起作用Javascript 使用ajax调用WebMethod时出现500内部服务器错误,javascript,c#,ajax,Javascript,C#,Ajax,我的C#WebMethod在代码隐藏方面遇到问题,导致500个内部服务器错误。我真的不明白为什么它不会击中它,所以如果有人能告诉我是什么问题,那就太好了 因此,这是我的ajax调用,即使数据和数据类型没有注释掉,也不起作用 $('#chkBxAutoCost') .click(function(e) { $.ajax({ type: "POST", url: "BatchReportCriter
$('#chkBxAutoCost')
.click(function(e) {
$.ajax({
type: "POST",
url: "BatchReportCriteriaSelection.aspx/GetAutoJsonBatches",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: "{}",
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("Request: " +
XMLHttpRequest.toString() +
"\n\nStatus: " +
textStatus +
"\n\nError: " +
errorThrown);
},
success: function() { console.log("success") }
});
}
);
这是我的页面代码隐藏方法:
[WebMethod]
public string GetAutoJsonBatches()
{
return autoJsonBatches;
}
所以我在这个WebMethod上附加了一个断点,它没有被击中。我被卡住了,如果有人有任何见解,我将不胜感激。要允许使用ASP.NET AJAX从脚本调用此Web服务,您需要为您的Web服务使用
[System.Web.script.Services.ScriptService]
属性
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string GetAutoJsonBatches()
{
return autoJsonBatches;
}
}
您还没有向我们提供异常消息的具体内容。因此,正如botond在评论中所说,我的问题是webmethods需要是静态的!非常感谢,这真的伤了我的头 首先要编辑
RouteConfig.cs
并使用
settings.AutoRedirectMode = RedirectMode.Off;
接下来编辑GetAutoJsonBatches()
到static
它们是静态的,因为它们完全是无状态的,它们不会创建页面类的实例,也不会向它们传递任何信息
在请求中(即ViewState和表单字段值)
默认情况下HTTP是无状态的,ASP.Net在
在标准页面中显示ViewState、会话等的背景
请求使开发人员的生活更轻松
可能重复尝试使您的方法成为静态的
:非常感谢。让它静止,固定它。但我无法接受这里的回答!如果你在我的下面加一个答案,我会接受的!:)
[WebMethod]
public static string GetAutoJsonBatches()
{
return autoJsonBatches;
}