You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JS跳转至其他网站并同时发送JWT作为Bearer Token

你的方法无法实现需求

你贴的这段代码存在关键问题:

  • 首先,XMLHttpRequest请求确实会带着你设置的Authorization头去请求redirectUrl,但这只是一次独立的AJAX请求,和之后的页面跳转没有关联。
  • 当你执行window.location.replace(redirectUrl)时,浏览器会发起一个全新的GET请求跳转到目标地址,这个请求不会携带之前AJAX请求里的Authorization头,等于前面的XHR请求完全白做了。

可行的实现思路

要在跳转时携带JWT,常见的靠谱方案有两种:

  1. 将JWT放入URL参数(不推荐敏感场景)
    这种方式会让JWT暴露在URL、浏览器历史和服务器日志中,仅适用于非敏感业务:
window.location.replace(`${redirectUrl}?token=${encodeURIComponent(token)}`);

目标网站需要从URL参数中提取token进行验证。

  1. 通过后端返回重定向并设置Cookie(推荐)
    如果目标网站和当前站点属于同一域名,或支持跨域Cookie配置,可以让你发起XHR请求的后端服务返回3XX重定向响应,同时在响应头中设置携带JWT的HttpOnly Cookie。浏览器跳转时会自动携带该Cookie到目标网站,目标站点从Cookie中读取JWT即可验证。
    示例后端响应逻辑(伪代码):
HTTP/1.1 302 Found
Location: https://目标网站地址
Set-Cookie: jwt=Bearer ${token}; Path=/; Domain=共同域名; HttpOnly; Secure

总结

你原来的代码本质是先做了一次带token的AJAX请求,又发起了一次不带token的页面跳转,两次请求毫无关联,完全实现不了“跳转时发送JWT”的需求。建议根据业务场景选择上面两种方案之一。

内容的提问来源于stack exchange,提问作者Ramin Zahedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:57:45