我只是想做最简单的 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
但它总是返回错误。
最佳答案
有几件事。
首先,它将有助于获取有关错误对象的更多信息。最好的方法是更新您的错误函数以处理 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。)
关于jquery - 使用 jquery ajax 调用与 dotnetnuke,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11316729/