首页 > 解决方案 > 获取请求后的服务器端重定向

问题描述

比方说,我们在 Web 工具中处理一个项目,一段时间后,应用程序希望在会话到期之前将该项目保存为备份。

对于保存,我们使用 fetch 方法(可以是 AJAX、Axios 等),我们向控制器函数发出请求,在其中我们保存项目,清除会话并希望重定向到主页。我已经用 Laravel 尝试过这种情况,但是当重定向时间到来时,会话数据被清除但服务器不会重定向到主页。

是因为 fetch 和其他类型的异步函数总是等待响应吗?

标签: phplaravel

解决方案


重定向意味着“可以在此处找到您要求的内容”而不是“在主浏览器窗口中加载此 URL”。

如果浏览器请求一个 URL 的目的是在主浏览器窗口中显示它(例如,点击了一个链接),那么它将遵循重定向并在主浏览器窗口中显示它。

如果浏览器打算做其他事情(例如渲染一个<img>),那么它会跟随重定向,在新的 URL 处获取图像,然后在<img>' 的位置渲染它。

同上阿贾克斯。您正在使用 Ajax 发出请求,因此浏览器遵循重定向并将新 URL 处的资源提供给 JavaScript 进行处理。

如果您想发出 POST 请求,在主浏览器窗口中加载新文档:提交表单并且不要使用 Ajax。


推荐阅读