【问题标题】:Angular Don't Send Content-Type Request HeaderAngular 不发送 Content-Type 请求标头
【发布时间】:2018-06-04 22:59:17
【问题描述】:

我必须在我的 Angular5 应用程序中通过 CORS 使用 API,但是这个特定的 api 不允许 CORS 配置中的 Content-Type 标头。我的 Angular 应用程序当前正在发送此标头,并且由于我正在发送 API 的 CORS 配置未明确允许的标头,因此预检检查失败。有没有办法删除这个特定请求的这个标头?

我正在考虑创建一个拦截器,但这是删除此标头的最合适的位置吗?

【问题讨论】:

    标签: angular


    【解决方案1】:

    这里的解决方案是不使用 Angular 的 HttpClient 而是使用 fetch api。我想不出一种使用 HttpClient 并删除“Content-Type”标头的方法,即使我编写了一个拦截器并明确删除了这个标头,它又被添加回了某个地方。

    这是我最终做的:

        return fetch( environment.splunk_config.url, {
            body: JSON.stringify(_message),
            method: 'POST',
            mode: 'cors',
            headers: { 'Authorization': auth }
          }
        )
        .then(response => response.json());
      }
    

    【讨论】:

    • 非常感谢您的回答。我在使用 Splunk Http Event Collector 和 Angular 6 时遇到了同样的问题。使用 fetch 方法并且效果很好。将向 Splunk 开发团队提交错误/增强请求
    • 我不确定这是 Splunk 的问题(是的,他们可能应该支持 CORS 请求中的 Content-Type 标头)但我认为这可能是 angular httpclient 的错误,我我不知道为什么 httpclient 不允许人们删除 content-type 请求标头。
    猜你喜欢
    • 1970-01-01
    • 2014-11-11
    • 2023-04-01
    • 1970-01-01
    • 2022-12-05
    • 2010-10-12
    • 1970-01-01
    • 2021-07-07
    • 2019-03-08
    相关资源
    最近更新 更多