在 Angular 中设置和覆盖请求 header 的正确方法

Correct way to set and override a request header in Angular

由于我们使用的身份验证方法,我需要为我的所有请求设置一个全局 http header。我们有一个身份服务器来使用 SSO 方法对用户进行身份验证。到目前为止一切顺利,我们使用拦截器全局设置 headers。但有时我们需要向不使用任何身份验证方法的第三方 API 发出请求。 如何覆盖拦截器配置的身份验证 header? 这是解决此问题的推荐方法吗?

在您的拦截器中,您可以编写一些逻辑来决定是否需要添加 header:

.factory('AuthHeaderInterceptor', function () {

  function request(config) {

    //if 3rd party url, don't add auth header
    if(config.url.indexOf('third_party_url') !== -1) {
      return config;
    }

    config.headers.Authorization = 'auth header';
    return config;
  }

  return {
    request: request
  };
});