AJax技术

ExtAspNet应用技巧(三)

字号+ 作者:H5之家 来源:H5之家 2015-10-04 17:25 我要评论( )

问题描述: mgzhenhong网友提到这样的问题,并给出了示例: 1. Web.config启用Forms Authentication ...

您现在的位置:天新网 > 软件开发 > .Net开发 > ASP.NET

ExtAspNet应用技巧(三) - 302与Asp.Net Ajax

2009年08月26日 博客园 三生石上

  第二次是重定向的登录页面。

  这就使我想起了以前使用 Response.Redirect 的错误,和这个一模一样。以前我们的解决办法是告诉大家,以后不要使用Response.Redirect了,

  使用我们ExtASPNet提供的方法 PageContext.Redirect ,但是现在似乎绕不过去了,有理由相信 ASP.NET 的Form Authentication内部调用了

  Response.Redirect 函数,我们可能去修改Asp.net的实现吧。

  另辟蹊径:

  既然绕不过 302 Found 的响应,我们何不来支持它,不过诡异的是在ExtAspNet的AJAX请求代码中:

Ext.Ajax.request({
    url: document.location.href,
    params: serializeForm(theForm.id),
    success: _ajaxSuccess,
    failure: _ajaxFailure
});

  两次的HTTP请求变成了一次,并且在回调函数(_ajaxSuccess)中观察状态码是 200, 而不是 302。

  无奈之下只好借助网络,发现了下面一篇文章:

  ?t=30278

  最终的结论居然是:

Unfortunately basex can't handle 302 as the browser preempts it.
Bottom line - redirects considered harmful with ExtJS and other AJAX Frameworks.

  上面一句话的重点在 Preempt 单词上,我特地查了一下这个单词的意思是“vt. 优先购买(先取)”,看来 302 响应是被

  浏览器无情的劫持了,XMLHTTPREQUEST看到的是一个完整的HTTP请求响应。

  看来客户端无法解决这个问题。

  峰回路转:

  服务器端总能有办法吧,我们可以在响应流中捕获 302 ,然后进行一定的处理再输出到浏览器。

上一篇: ExtAspNet应用技巧(八) - log4net配置与使用

相关内容

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Extjs4 的 tabPanel格局

    Extjs4 的 tabPanel格局

    2016-02-07 13:00

  • RSF分布式服务框架设计:Hasor

    RSF分布式服务框架设计:Hasor

    2016-01-26 12:07

  • 在struts1中怎么用ajax请求

    在struts1中怎么用ajax请求

    2016-01-18 08:00

  • AJAX - 请求服务器

    AJAX - 请求服务器

    2016-01-17 16:00

网友点评
>