比方说,我们在web工具中处理一个项目,一段时间后,应用程序希望在会话到期前将该项目保存为备份。
对于保存,我们使用fetch方法(可以是AJAX、Axios等(,并向控制器函数发布请求,在该函数中,我们保存项目,清除会话,并希望重定向到主页。我在Laravel中尝试过这种情况,但当重定向时间到来时,会话数据会被清除,但服务器不会重定向到主页。
是因为fetch和其他类型的异步函数总是在等待响应吗?
重定向意味着"您要求的内容可以在这里找到",而不是"在主浏览器窗口中加载此URL"。
如果浏览器请求URL以在主浏览器窗口中显示(例如,单击了链接(,则它将遵循重定向并在主浏览器窗中显示。
如果浏览器计划做其他事情(例如渲染<img>
(,那么它将遵循重定向,在新的URL处获取图像,并在<img>
的位置渲染该图像。
Ajax也是如此。您正在使用Ajax进行请求,因此浏览器会遵循重定向,并将新URL处的资源提供给JavaScript进行处理。
如果您想发出POST请求,在主浏览器窗口中加载一个新文档:提交一个表单,不要使用Ajax。