我经常在jquery的帮助下调用我的aspx服务器端方法....比如
$.ajax({
type: "POST",
url: "login.aspx/Authenticate",
data: JSON.stringify(DTO),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
sHtml = data.d;
if (sHtml != "") {
alert(sHtml);
location.href = sHtml;
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
但有趣的是,我不知道jquery如何从外部调用我的静态方法。 我看到当我调用我的服务器端方法时,page_load不会触发,但是如果updatepanel部分回发,则首先执行page_load。
所以我想知道jquery的内部逻辑,它如何直接调用服务器端方法........寻找好的解释。感谢
答案 0 :(得分:1)
所以我想知道jquery的内部逻辑,它如何直接调用服务器端方法
它不能。
jQuery可以使浏览器向URI发出HTTP请求。
服务器可以运行代码以响应所请求的URI,以确定要返回的内容和标头。
答案 1 :(得分:0)
在jquery案例中发生的事情是该方法被标记为webmethod,这意味着它作为httprequest的端点,就像它是一个web服务一样,当你这样做时,jquery对这个方法做一个httprequest,就好像他正在打电话给网络服务。
此网址可让您深入了解拨打任何ajax电话时发生的情况http://msdn.microsoft.com/en-us/magazine/cc163499.aspx
答案 2 :(得分:0)
您的服务器端方法标有[WebMethod]属性,对吗?此属性将方法公开为xml Web服务。
http://msdn.microsoft.com/en-us/library/byxd99hx(v=vs.71).aspx
由于这个自动生成的“webservice”与页面无关,因此不会调用page_load。