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

我们可以使用 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