我只想尝试做最简单的ajax调用:
<script type="text/javascript">
$.ajax({
type: "POST",
url: "module.aspx/testSub",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function() {
alert("Works!");
},
error: function(){
alert("Error");
}
});
</script>
这是我的代码隐藏
Public Sub testSub()
lblTest1.Text = "HelloWorld!!!1!"
End Sub
但它总是会返回错误。
答案 0 :(得分:2)
有几件事。
首先,它将有助于获取有关错误对象的更多信息。最好的方法是更新你的错误函数来处理jquery支持的签名,error(jqXHR, textStatus, errorThrown)
“errorThrown”将获得更多信息。 (See this API Doc)你的代码看起来像这样包含它。
<script type="text/javascript">
$.ajax({
type: "POST",
url: "module.aspx/testSub",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function() {
alert("Works!");
},
error: function(jqXHR, textStatus, errorThrown){
alert("Error:" + errorThrown);
}
});
</script>
现在,除此之外,我相信你有一些问题。在DNN中,您的模块位于/ DesktopModules / ModuleName /中。您的自定义ASPX页面中包含您的服务方法。 (注意:如果您没有使用自定义aspx页面,并且在ascx中使用您的方法,则无法直接调用它们。)
您的网址很可能需要像/DesktopModules/MyModule/module.aspx/testusb或类似名称。 (还要确保使用适当的属性将该方法标记为ScriptService。)
答案 1 :(得分:0)
对于DNN,请试试这个。
//要允许使用ASP.NET AJAX从脚本调用此Web Service,请取消注释以下行。 [System.Web.Script.Services.ScriptService]