当前位置: 首页 > 知识库问答 >
问题:

使用Fetch APi时如何设置请求头的内容类型

段干浩荡
2023-03-14

我正在使用npm“同构获取”发送请求。我遇到的问题是无法设置请求头的内容类型。

我将内容类型设置为application/json,但是请求头被设置为text/plain。

import 'isomorphic-fetch';

  sendRequest(url, method, body) {
    const options = {
      method: method,
      headers:{'content-type': 'application/json'},
      mode: 'no-cors'
    };

    options.body = JSON.stringify(body);

    return fetch(url, options);
  }

当我在浏览器中检查请求时,内容类型为o:

content-type:text/plain;charset=UTF-8

有人能解释为什么我不能设置这个属性吗?

共有2个答案

澹台冯浩
2023-03-14

看了下面这篇文章,我找到了答案:

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#Headers

由于标头可以在请求中发送,也可以在响应中接收,并且对于哪些信息可以且应该是可变的有各种限制,因此标头对象有一个guard属性。这不会向Web公开,但会影响headers对象上允许的变异操作。

可能的防护值为:

  • none:默认值

注意:您不能附加或设置请求受保护的标题“内容长度标题。同样,不允许在响应头中插入Set Cookie:不允许ServiceWorkers通过合成响应设置Cookie。

当options mode属性设置为no cors时,请求头的值是不可变的。

相反,我将模式属性设置为cors。

夏侯阳
2023-03-14

您需要创建一个fetch headers对象。

sendRequest(url, method, body) {
    const options = {
        method: method,
        headers: new Headers({'content-type': 'application/json'}),
        mode: 'no-cors'
    };

    options.body = JSON.stringify(body);

    return fetch(url, options);
}
 类似资料:
  • 我试图使用服务/调度机制发布一个JAX-RS资源。问题是传出请求的内容类型被锁定为。我看不出有什么方法可以将其更改为其他类型,例如。 RESTful webservice只使用和。这是我使用的代码: 接受标头被修改为zoo标头,foo标头添加了值,但Content-Type保持不变。我想我可以使用一个过滤器,并根据一些条件修改,甚至基于foo头,但这似乎违反直觉。 以下是请求的所有标题: 感谢您的

  • 我无法在HttpClient上设置内容类型。我接着问了一个问题:如何为HttpClient请求设置Content-Type头?但还是没有运气。 所以我怎么能强迫它,这样它就真的添加了它呢?提前道谢。

  • 我的大摇大摆的ui显示“参数内容类型”,其中包含各种条目:、、和。 我只想要。 在repo上有一个类似的未解决的问题,它使用了这个可视化(旧的ui,但相同的想法): 版本 版本

  • 我正在学习Spring框架,以创建使用基本身份验证和交换JSON的REST Web服务的客户端。在网上搜索了很多之后,我写了一些有效的代码(如下),但是现在我得到了一个“不支持的媒体类型”错误,因为请求是用内容类型文本/普通而不是应用程序/json发送的。我在网络上没有发现任何显示如何在请求头中设置内容类型的内容(而不会完全迷失在杂草中)。我的代码是: 任何指导都将不胜感激。 谢谢,乔治

  • 问题内容: 我正在使用Flask,并且从get请求返回一个XML文件。如何将内容类型设置为xml? 例如 问题答案: 尝试这样: 实际的Content-Type基于mimetype参数和字符集(默认为UTF-8)。

  • 问题内容: 我有多个IP可以上网。我正在请求选择界面。在这种情况下,我应该如何设置标题? 通常,头是以这种方式设置的: 但是无法弄清楚如何将它们设置为我的代码。 我想它们必须放在或中的某个位置。但是到底如何呢? 我的完整代码: 问题答案: 创建一个请求: 设置标题: 使用问题中配置的方式运行请求: 按照问题所示处理响应。