从母版页调用asmx web方法
本文关键字:web 方法 asmx 调用 母版页 | 更新日期: 2023-09-27 17:54:30
我的项目结构
Web Dir
- App_code
- App_Data
- DevFolder
- LiveFolder
- Live.aspx
- Dev.master
- DevMasterEvents
- masterservice.asmx
在母版页
$.ajax({
type: "POST",
url: "DevMasterEvents/masterservice.asmx/HelloWorld",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: SetTabSessionValueSucceed,
error: SetTabSessionValueFailed
});
function SetTabSessionValueSucceed(result) {
alert("text from server: " + result.d);
}
function SetTabSessionValueFailed() {
alert('call failed');
}
masterservice.asmx中的Web方法
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
抛出调用失败。请帮助
编辑:恐怕原因可能https://stackoverflow.com/a/12621912/2922388因为我可以整个页面刷新(不确定为什么)。
是的,这是我的粗心错误:(
<span class="input-group-btn">
<button type='button' name='search' id='search-btn' class="btn btn-flat"><i class="fa fa-search"></i></button>
</span>
先前的类型是"提交",我改为按钮。现在我收到"404 error Not Found"
问题是由于内容类型和数据类型,只需从Ajax请求中删除它们:
$.ajax({
type: "POST",
url: "DevMasterEvents/masterservice.asmx/HelloWorld",
success: SetTabSessionValueSucceed,
error: SetTabSessionValueFailed
});
您还忽略了SetTabsessionValueFailed
中的错误,而只是显示一条消息,这对您调试它没有帮助。参见:如何处理来自AJAX调用的错误?
除此之外,请参阅:在新代码中不使用ASMX服务的更多理由