JavaScript Fetch重定向时,浏览器凭证是否会在后续请求中重新提交?
Fetch重定向链中凭证提交的问题
假设发起如下JavaScript fetch请求:
fetch('https://example.com', { credentials: 'include', redirect: 'follow' });
若该URL返回重定向(且重定向可能进一步触发更多重定向),浏览器凭证是否会在该重定向请求链的后续请求中重新提交?
会的。当你在fetch配置中设置credentials: 'include',同时redirect: 'follow'(这也是默认值)时,浏览器会在整个重定向请求链的每一步后续请求里自动携带凭证,包括Cookie、HTTP基本认证信息等。
需要注意两个前提:
- 若重定向到跨域地址,目标服务器必须返回
Access-Control-Allow-Credentials: true响应头,且Access-Control-Allow-Origin不能是通配符*,否则浏览器会拒绝携带凭证,同时也不会将响应内容返回给前端代码。 - 所有重定向步骤的请求,浏览器都会遵循同域/跨域的凭证携带规则,只要符合条件就会自动提交。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

