繁体   English   中英

将xhr或获取请求重定向到新页面的良好做法是什么?

[英]What is a good practice for redirecting a xhr or fetch request to a new page?

我想知道是否有任何标准/最佳实践来处理以下情况:

浏览器会执行xhr的提取请求,并且响应应指示浏览器应导航到新位置。

例如,用户发送聊天消息,浏览器发送获取请求,并且响应是用户未登录,浏览器应导航到登录页面。

现在,您可能只是一个3xx响应,而通过fetch可以这样处理:

const response = await fetch(request);

if (response.redirected) {
  window.location.href = response.url;
}

但是,这将导致重定向页面被加载2次。 如果重定向的页面是外部页面,这将非常糟糕,甚至更糟。

通常,这不是您应该期望在客户端上处理的事情。 相反,您的服务器不应将JSON请求重定向到HTML页面。

在您的服务器上,如果请求要求提供JSON,则应以401 Unauthorized和包含错误信息的JSON文档进行响应。

对HTML的相同请求应重定向到登录页面。

大多数服务器端框架都有一种方法来判断给定请求正在请求哪种格式,以及发出正确的响应类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM