【问题标题】:Which event is triggered when we do fetch当我们获取时触发了哪个事件
【发布时间】:2019-10-01 19:38:42
【问题描述】:

我需要在 UI 上生成的所有 XHR 请求中添加一个标头。在整个页面上,我正在使用 fetch api。我需要在 fetch 开始之前添加标头,因此问题是,有什么方法可以在 fetch 发生之前更改请求?

我知道 Fetch 事件,但这仅适用于服务工作者,而不适用于实际的 HTML 页面。

【问题讨论】:

标签: javascript fetch dom-events


【解决方案1】:

你需要一个拦截器。您可以使用:

https://github.com/werk85/fetch-intercept

然后:

import fetchIntercept from 'fetch-intercept';

const unregister = fetchIntercept.register({
    request: function (url, config) {
        // Modify headers here
        return [url, config];
    },

    requestError: function (error) {
        // Called when an error occured during another 'request' interceptor call
        return Promise.reject(error);
    },

    response: function (response) {
        // Modify the reponse object
        return response;
    },

    responseError: function (error) {
        // Handle an fetch error
        return Promise.reject(error);
    }
});

// Call fetch to see your interceptors in action.
fetch('http://google.com');

// Unregister your interceptor
unregister();

【讨论】:

  • IE 不支持 fetch,所以我为此使用了 poly fill。我不认为这个拦截器可以使用它。如果没有 Amy 外部库,有什么方法可以实现相同的功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多