我们可以使用 JSON 方法在 jQuery 调用后管理重定向请求。
对 Ajax 请求的所有响应都具有状态代码 200 和包含在服务器上构建的 JSON 对象的响应正文。
在客户端,JavaScript 可以使用 JSON 对象来决定进一步的操作。
浏览器处理重定向并传送带有重定向目的地内容的 200 代码。
如果我们执行 HTTP 重定向,则重定向永远不会触发 Ajax 成功回调。
这是一个jQuery代码:
$.ajax({ type: "POST", url: reqUrl, data: reqBody, dataType: "json", success: function (data, textStatus) { if (data.redirect) { //data.redirect 包含要重定向到的字符串 URL window.location.replace(data.redirect); } else { //data.form 包含替换表单的 HTML $("#my-form").replaceWith(data.form); } } });
这里我们有一个 Ajax 请求,它有 2 种可能的响应,其中一个将浏览器重定向到新页面,另一个用新页面替换当前页面上的现有 HTML 表单。
JSON 数据对象在服务器上构造为具有 2 个成员:data.redirect 和 data.form。
我们也可以使用 window.location.href 代替 window.location.replace(),但 window.location.replace() 比第一个更好,因为 replace() 不会在会话历史记录中保留原始页面。
日期:2020-06-02 22:16:23 来源:oir作者:oir