gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 11:10:49 26 4
gpt4 key购买 nike

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

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

最佳答案

我阅读了这个问题并实现了关于将响应 HTTP 状态代码 设置为 278 的方法,以避免浏览器透明地处理重定向。即使这有效,我还是有点不满意,因为它有点像 hack。

经过更多的挖掘,我放弃了这种方法并使用了 JSON .在这种情况下,对 AJAX 请求的所有响应都具有 状态码 200,并且响应的主体包含在服务器上构造的 JSON 对象。然后客户端上的 JavaScript 可以使用 JSON 对象来决定它需要做什么。

我遇到了和你类似的问题。我执行了一个 AJAX 请求,它有 2 个可能的响应:一个将浏览器 重定向 到一个新页面,另一个将当前页面上的现有 HTML 表单替换为一个新的表单。 .执行此操作的 jQuery 代码如下所示:

$.ajax({
type: "POST",
url: reqUrl,
data: reqBody,
dataType: "json",
success: function(data, textStatus) {
if (data.redirect) {
// data.redirect contains the string URL to redirect to
window.location.href = data.redirect;
} else {
// data.form contains the HTML for the replacement form
$("#myform").replaceWith(data.form);
}
}
});

JSON 对象“data”在服务器上构造为具有 2 个成员:data.redirectdata.form。我发现这种方法要好得多。

关于javascript - 如何在 jQuery Ajax 调用后管理重定向请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com