【问题标题】:How could back-end (PHP) force redirect on ajax call?后端(PHP)如何在 ajax 调用上强制重定向?
【发布时间】:2021-02-18 19:45:04
【问题描述】:

抱歉,这个问题可能是愚蠢/简单/幼稚的问题,但我有一个 React 无头应用程序,它显然做了很多数据获取。

有时某些请求的状态为 4xx 或 5xx。

当这种情况发生时,是否有一种通用的方法可以在不触及前端层的情况下重定向到给定的 url?

所以当我访问 mypage.example.com/user/134 获取数据,返回 404 时,后端本身会触发重定向到 user/1 吗?

我知道我可以通过路由来做到这一点,但是有数百条路由,而且我还无法访问前端存储库,想知道这样的事情是否可以从后面实现?也许如果有 404 后端应该发送带有位置集的标头或类似的东西?

【问题讨论】:

  • 服务器无法重定向 ajax 请求。浏览器(或另一台服务器)发出了请求,它决定如何处理结果。您可以做的唯一“重定向”是从新位置发送响应。

标签: javascript php ajax redirect


【解决方案1】:
$.ajax({
   //code
}).then(function(response){
   //action on success
}).catch(function(error){
   console.log(error)
   //do what ever you want to with error
   //then redirect to another page
   window.location.href="http://url"
})

【讨论】:

  • 我需要在后端进行。我不想在 400 个地方手动添加 ajax 处理程序。
【解决方案2】:

我认为有几种方法可以做到这一点 - 您可以尝试编写自定义 fetch 钩子或 fetch 包装器,始终根据响应状态重定向到特定路由?

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 1970-01-01
    • 2014-07-11
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多