我在用着$.post()
使用 Ajax 调用 servlet,然后使用生成的 HTML 片段替换div
用户当前页面中的元素。但是,如果会话超时,服务器会发送重定向指令以将用户发送到登录页面。在这种情况下,jQuery 正在取代div
元素与登录页面的内容相结合,迫使用户的眼睛目睹了一个确实罕见的场景。
如何使用 jQuery 1.2.6 管理来自 Ajax 调用的重定向指令?
我阅读了这个问题并实施了有关设置响应的方法HTTP 状态码到 278 以避免浏览器透明地处理重定向。尽管这有效,但我还是有点不满意,因为它有点像黑客。
经过更多的挖掘后,我放弃了这种方法并使用JSON http://en.wikipedia.org/wiki/JSON。在这种情况下,对 AJAX 请求的所有响应都有状态码200 并且响应正文包含在服务器上构造的 JSON 对象。然后,客户端上的 JavaScript 可以使用 JSON 对象来决定它需要做什么。
我有和你类似的问题。我执行一个 AJAX 请求,该请求有 2 种可能的响应:一种是重定向浏览器到一个新页面replaces当前页面上的现有 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.redirect
and data.form
。我发现这种方法要好得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)