Fetch API 和 XHR(XMLHttpRequest) 都是用于向服务器发送网络请求并获取数据的技术,它们有一些相同和不同点:
- Fetch API 使用 Promise 和 Response/Request 对象处理请求和响应,而 XHR 使用事件和 XMLHttpRequest 对象处理请求和响应。
- Fetch API 支持流式响应处理,XHR 不支持。
- Fetch API 更易于使用和学习,代码通常更简洁,而 XHR 的语法和实现比较复杂,需要编写一些回调函数。
- Fetch API 支持跨域请求判断更为严格,需要服务器进行 CORS 配置,XHR 则有 CORS 跨域请求的设置和 JSONP 实现。
- 在浏览器中使用 Fetch API 绕过了原始的怪异行为和安全风险,如 XSS 安全漏洞,XHR 则需要进行一些额外的配置和注意事项来防止这些安全问题。
总之,Fetch API 和 XHR 都是现代 Web 开发中使用的常见工具,二者各有优点和缺点,具体使用需要根据具体的场景和需求来选择。