jQuery Ajax调用后如何管理重定向请求

$.post()使用Ajax调用servlet,然后使用生成的HTML片段替换div用户当前页面中的元素。但是,如果会话超时,服务器将发送重定向指令以将用户发送到登录页面。在这种情况下,jQuery用div登录页面的内容替换了该元素,从而迫使用户的眼睛确实看到了一个罕见的场景。

如何使用jQuery 1.2.6从Ajax调用管理重定向指令?

回答:

最终实现的解决方案是对Ajax调用的回调函数使用包装器,并在此包装器中检查返回的HTML块上是否存在特定元素。如果找到该元素,则包装器将执行重定向。如果不是,则包装将调用转发给实际的回调函数。

例如,我们的包装器函数类似于:

function cbWrapper(data, funct){

if($("#myForm", data).length > 0)

top.location.href="login.htm";//redirection

else

funct(data);

}

然后,在进行Ajax调用时,我们使用了类似以下内容:

$.post("myAjaxHandler", 

{

param1: foo,

param2: bar

},

function(data){

cbWrapper(data, myActualCB);

},

"html"

);

这对我们有用,因为所有Ajax调用总是在DIV元素内返回HTML,该DIV元素用于替换页面的一部分。另外,我们只需要重定向到登录页面。

以上是 jQuery Ajax调用后如何管理重定向请求 的全部内容, 来源链接: utcz.com/qa/418664.html

回到顶部