”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用 JavaScript Fetch API 登录后将用户重定向到另一个页面?

如何使用 JavaScript Fetch API 登录后将用户重定向到另一个页面?

发布于2024-11-08
浏览:179

How to Redirect User to Another Page After Login Using JavaScript Fetch API?

登录后如何使用 JavaScript Fetch API 将用户重定向到另一个页面?

在提供的代码中,JavaScript fetch() 方法用于使用从 Google 获得的令牌向后端端点发送 POST 请求。后端验证 token 后,会返回一个 RedirectResponse,状态码为 303。但是,浏览器中不会发生重定向。

选项 1:返回 RedirectResponse

默认情况下,fetch() 函数遵循重定向响应。因此,您可以在 fetch() 响应中使用 Response.redirected 和 Response.url 属性来手动重定向用户。

工作示例:

fetch('http://localhost:8000/login', {
  method: 'POST',
  headers: { ... },
  body: { ... },
  redirect: 'follow'
})
.then(res => {
  if (res.redirected) {
    window.location.href = res.url;
  } else {
    // Handle non-redirect responses
  }
})

选项 2:返回带有重定向 URL 的 JSON 响应

或者,后端可以返回包含重定向 URL 的 JSON 响应。在前端,您可以检查响应中的“url”键并相应地重定向用户。

工作示例:

fetch('http://localhost:8000/login', {
  method: 'POST',
  headers: { ... },
  body: { ... },
})
.then(res => res.json())
.then(data => {
  if (data.url) {
    window.location.href = data.url;
  } else {
    // Handle non-redirect responses
  }
})

选项 3:使用 HTML

如果不需要使用 fetch(),您可以使用带有提交按钮的传统 HTML 表单。提交表单时,如果服务器返回 RedirectResponse,浏览器将自动处理重定向。

版本声明 本文转载于:1729207576如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3