首页 > 解决方案 > 使用 whatwg-fetch polyfill 时添加标头以获取和 XHR 请求

问题描述

大家好。

我在一个同时使用fetchXHR. 问题是我需要在每个请求(获取和 XHR)上添加一个令牌。

我可以简单地创建一个 polyfill 来获取请求:

window.fetch = function(url, options) {
   // ...
   options.headers['token'] = token
   return window.fetch.apply(this, [options])
}

和 XHR 请求:

XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
   // ...
   this.setRequestHeader('token', token)
}

但是这种方法可以添加两个令牌,使应用程序无法正常工作。这发生在 polyfill 环境中,其中whatwg-fetch使用 XHR 模拟提取,使得 XHR 在fetch.

我找不到检查 XHR 标头的方法。显然有一个setRequestHeader,但没有一个getRequestHeader

有一种方法可以识别 XHR 是否由 window.fetch polyfill 调用,或者有什么想法可以解决这个问题?任何想法都会有所帮助:)

标签: reactjsxmlhttprequestfetchpolyfills

解决方案


推荐阅读