代码之家  ›  专栏  ›  技术社区  ›  James

从ASP.Net PageMethod调用访问响应头

  •  6
  • James  · 技术社区  · 16 年前

    当使用ASP.NETAjax调用PageMethods时,如何从“success”方法访问Http响应头?

    PageMethods.DoSomething(
       function(result){successMethod(result)},
       function(error){errorMethod(error)}
    );
    
    function successMethod(result){
        //------how can I access the Http response headers from here? ------
    }
    

    谢谢你的帮助

    2 回复  |  直到 16 年前
        1
  •  3
  •   Andras Zoltan    16 年前

    在您的示例中,PageMethods.DoSomething的返回值应等于 WebRequest

    在这个类中,您有一个add_completed方法,您可以使用它在web请求完成时添加处理程序。回调的签名是 function OnWebRequestCompleted(executor, eventArgs) ,以及 executor 此中的参数使您能够获得额外的响应信息。例如,您可以使用 executor.getAllResponseHeaders() ; 它应该是标题名称和值的映射(命名集合)。

    因此,如果在调用服务方法后立即向web请求的completed事件添加处理程序,它应该可以工作(世界上没有任何web服务的响应速度超过连续两行代码!)。

    网络请求 包含如何将此连接起来的完整示例。但是,请注意,此代码直接使用WebRequest。

    WebServiceProxy 类,并且每个代理方法最终调用其 invoke 方法,该方法返回 WebRequest 例如。

        2
  •  0
  •   Brian Mains    16 年前

    http://msdn.microsoft.com/en-us/library/bb383774.aspx

    webrequestmanager是一个静态对象,您可以从中提取此信息:

    http://msdn.microsoft.com/en-us/library/bb397435.aspx

    希望在这两个链接之间,它是有意义的:-;