fetch 默认跨域请求为什么不带 Cookie,credentials 选项各取值有什么区别?
解释 fetch credentials 的三个值 omit、same-origin、include 的行为,重点回答为什么跨域默认不带 Cookie,并说明 include 与 CORS 响应头的配合要求及常见出错点。
浏览器 · HTTP面试题第 1 页,显示第 1–21 题,共找到 21 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
解释 fetch credentials 的三个值 omit、same-origin、include 的行为,重点回答为什么跨域默认不带 Cookie,并说明 include 与 CORS 响应头的配合要求及常见出错点。
解释 fetch 为什么对 404、500 不 reject:Promise 只在网络层失败时拒绝,HTTP 错误状态会正常 resolve。给出检查 response.ok 或 status 并手动抛错的标准处理方式与边界。
围绕“在支持流式请求体的浏览器中用 fetch 上传 ReadableStream,为什么必须设置 duplex: 'ha”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出流式上传要求 HTTP/2 或 HTTP/3 且需显式声明 duplex 的兼容性约束。
本文说明 fetch 无上传进度事件的原因,对比 XHR upload.progress 和流式字节统计的适用边界,指导进度条实现技术选型。
对比 fetch 与 XMLHttpRequest 的四个实质差异:Promise 化、HTTP 错误不 reject、上传进度支持、取消机制,并给出按上传进度、错误处理、取消需求选型的可操作判断。
围绕“HTTP/1.1 下浏览器对同一域名的并发连接数限制如何影响 SSE 和轮询,HTTP/2 如何缓解”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出每域约 6 连接、长连接占满会阻塞普通请求、HTTP/2 多路复用可共用一个连接。
围绕“EventSource 有哪些硬性限制,为什么自定义请求头或 POST 请求做不到”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出只支持 GET、无法自定义请求头、可用 fetch 流读取替代的边界。
围绕“WebSocket 关闭连接时 close(code, reason) 的状态码怎么选,1000 与 1006 有什”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 1000 正常关闭、1006 异常断开无法手动触发这一诊断价值。
围绕“WebSocket 建立连接时的 HTTP 升级握手过程是怎样的,101 状态码代表什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 Upgrade 头、Sec-WebSocket-Key/Accept 校验与 101 Switching Protocols 。
围绕“实时推送场景下 WebSocket 与 SSE 如何选型,各自的决定性优势是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出双向通信需求选 WebSocket、纯服务端推送且要自动重连与 HTTP 友好选 SSE 的决策依据。
围绕“调用 XMLHttpRequest 的 abort() 后,readyState、事件和该对象还能复用吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 abort 后 readyState 归零、触发 abort 事件、对象可重新 open 复用。
围绕“XMLHttpRequest 的 readyState 从 0 到 4 各代表什么阶段,onreadystatech”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出五个状态含义及 onload 只在完整成功时触发而 readyState 4 可能对应 HTTP 错误。
围绕“XMLHttpRequest 的 responseType 有哪些取值,下载二进制文件时应该选什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 arraybuffer 与 blob 在二进制下载中的取舍及 text/json 默认行为。
围绕“为什么主线程上的同步 XMLHttpRequest 被废弃并应避免使用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出同步请求冻结主线程 UI 与事件循环、浏览器已计划移除支持。
围绕“XMLHttpRequest 的 timeout 属性与 ontimeout 事件如何工作,与手动 setTimeo”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出原生 timeout 从 send 起计时并自动中止触发 ontimeout,无需手动清理定时器。
围绕“XMLHttpRequest 如何分别监听上传进度和下载进度,两个 progress 事件挂在哪个对象上”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出上传进度挂在 xhr.upload、下载进度挂在 xhr 本身及 e.lengthComputable 判断。
本题说明 Cookie 三个安全属性各自的防御目标:HttpOnly 防脚本窃取、Secure 防明文传输窃听、SameSite 防跨站伪造请求,并给出真实配置场景与失效边界。
围绕“Secure 属性在 localhost 或 HTTP 环境下如何使用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释现代浏览器将 localhost 视为可信源。
围绕“为什么使用 SharedArrayBuffer 需要启用跨源隔离(cross-origin isolation)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释安全原因,以及必须用 COOP 和 COEP 响应头。
围绕“在 Worker 中可以使用 XMLHttpRequest 或 fetch 发起网络请求吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕支持 XHR 和 fetch,但注意同源策略与 CORS。
本题解释加载Worker脚本时的同源与CORS规则,包括跨域时所需的HTTP头、file协议限制、以及模块脚本的额外MIME要求,并提供实际场景与判断方法。