比方说,我们在网络工具中处理一个项目,一段时间后,该应用程序希望在会话期满之前将项目另存为备份。
为进行保存,我们使用fetch方法(可以是AJAX,Axios等),然后向控制器功能发布请求,在其中保存项目,清除会话并希望重定向到主页。我已经在Laravel中尝试过这种情况,但是当重定向时间到来时,会话数据将被清除,但服务器不会将其重定向到主页。
是因为获取和其他类型的异步函数总是等待响应吗?
答案 0 :(得分:2)
重定向的意思是“可以在此处找到您要的内容”,而不是“在主浏览器窗口中加载此URL”。
如果浏览器要求提供的URL旨在在主浏览器窗口中显示该URL(例如,单击了链接),则它将遵循重定向并显示在主浏览器窗口中。
如果浏览器打算做其他事情(例如渲染<img>
),则它将遵循重定向,在新URL处获取图像,然后在<img>
处进行渲染
Ditto Ajax。您正在使用Ajax发出请求,因此浏览器将遵循重定向并将新URL处的资源提供给JavaScript进行处理。
如果您要发出POST请求,以在主浏览器窗口中加载新文档:提交表单,请勿使用Ajax。