来自ASP.Net PageMethod Call的访问响应标头

Jam*_*mes 6 javascript asp.net ajax httpwebrequest

使用ASP.Net Ajax调用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? ------
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

And*_*tan 3

在您的示例中,如果 PageMethods.DoSomething 是 asp.net Web 服务代理,则其返回值应等于WebRequest 。提供此信息是为了您可以在发起请求后对其进行操作(即取消请求等)。

通过此类,您可以使用 add_completed 方法来添加 Web 请求完成时的处理程序。回调的签名是function OnWebRequestCompleted(executor, eventArgs)executor其中的参数使您能够获取额外的响应信息。例如,您可以使用 ; 获取响应标头executor.getAllResponseHeaders()。它应该是标头名称和值的映射(命名集合)。

因此,如果您在调用服务方法后立即将处理程序添加到 Web 请求的完成事件中,那么它应该可以工作(世界上没有任何 Web 服务的响应速度比连续两行代码更快!)。

前面的WebRequest超链接包含如何连接它的完整示例。但请注意,此代码直接使用 WebRequest。

Asp.Net Ajax Web Service代理类使用该类WebServiceProxy,每个代理方法最终调用其invoke方法,该方法返回WebRequest实例。