在ASPX页面中使用webmethod服务AJAX请求
我正在尝试使用.aspx页面中的方法为AJAX请求提供服务。 出于某种原因,我没有得到我想要的数据。 谁能告诉我我做错了什么?
mypage.aspx:
Protected Sub Page_Load(sender As Object, e As System.EventArgs) End Sub Public Function testmethod() As Integer Return 5 End Function
JQuery的:
$("#mybutton").click(function() { $.ajax({ type: "POST", url: "mypage.aspx/testmethod", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { alert("success"); $("#myresults").html(msg.d); }, error: function(msg) { alert("error:" + JSON.stringify(msg)); } }); });
当我点击我的按钮mybutton
我收到一条警告“错误:”,然后是大量的HTML说:
Unknown web method testmethod. Parameter name: methodName
该方法需要Shared
:
Public Shared Function testmethod() As Integer Return 5 End Function
另外,当您不使用代码隐藏文件时,我不确定是否支持页面方法。
传回的错误是什么? 您看到整个html页面的原因是因为您在代码中有错误并且正在传回的消息是完整的html,它告诉您错误的位置。 我确定如果您修复错误,那么您会没事的。
我不确定您是否期望从代码隐藏中看到错误消息。 记住 – 根据webservice方法是否成功调用,调用Ajax部分中调用的成功或错误函数。 我认为你认为你会在这里看到来自webmethod的错误消息,但实际上,如果webmethod抛出错误,那么你仍然会有一个成功的ajax调用,因此“成功”函数就是运行的那个。 “错误”function仅在整个webmethod调用失败时运行,因此服务器没有响应。
希望有道理。