从母版页调用 asmx web 方法
Call asmx web method from master page
我的项目结构
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";
}
}
它抛出调用失败。请帮助
编辑: 恐怕原因可能 因为我可以刷新整个页面(不知道为什么)。
是的,这是我粗心的错误:(
<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>
之前的类型是'submit'我改成了按钮。现在我收到“找不到 404 错误”。
问题是由于内容类型和数据类型,只需将它们从 Ajax 请求中删除:
$.ajax({
type: "POST",
url: "DevMasterEvents/masterservice.asmx/HelloWorld",
success: SetTabSessionValueSucceed,
error: SetTabSessionValueFailed
});
此外,您忽略了 SetTabsessionValueFailed
中的错误,而只是显示一条消息,这对您调试它没有帮助。参见:How do you handle errors from AJAX calls?
我的项目结构
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";
}
}
它抛出调用失败。请帮助
编辑: 恐怕原因可能 因为我可以刷新整个页面(不知道为什么)。
是的,这是我粗心的错误:(
<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>
之前的类型是'submit'我改成了按钮。现在我收到“找不到 404 错误”。
问题是由于内容类型和数据类型,只需将它们从 Ajax 请求中删除:
$.ajax({
type: "POST",
url: "DevMasterEvents/masterservice.asmx/HelloWorld",
success: SetTabSessionValueSucceed,
error: SetTabSessionValueFailed
});
此外,您忽略了 SetTabsessionValueFailed
中的错误,而只是显示一条消息,这对您调试它没有帮助。参见:How do you handle errors from AJAX calls?