JQuery服务器端方法调用内部

时间:2011-09-01 13:22:26

标签: javascript jquery asp.net

我经常在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的内部逻辑,它如何直接调用服务器端方法........寻找好的解释。感谢

3 个答案:

答案 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。