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

反应开发:在获取中添加标头属性会引发CORS错误[重复]

李兴安
2023-03-14

以下错误来自firefox的网络部分:

在发送React API请求(或本机ES6请求)时,我尝试通过在本机fetch函数中添加headers(基于类似问题的各种答案)属性来解决上述错误。

fetch('API_ENDPOINT', // API_ENDPOINT is a different sub-domain
  {
    method: 'POST',
    headers: {
      'Authorization' : 'Basic XXXXXXXXXX'
    },
    body: JSON.stringify(body)
  }
).then(...);

删除标头部分允许请求通过(我已经通过在响应标头中返回自定义消息来验证这一点),但我需要它来添加授权标头,因为我通过基本令牌对请求进行身份验证(我将很快迁移到 Bearer,但将使用相同的方法)。看起来在我添加 headers 属性后,初始标头集将被替换?

注意:我有一个< code >。htaccess允许跨来源请求,定义为:

<IfModule mod_headers.c>
   Header add Access-Control-Allow-Methods "PUT,GET,POST,DELETE,OPTIONS"
   Header add Access-Control-Allow-Credentials "true"
   Header add Access-Control-Allow-Headers "Content-Type, Authorization, Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Access-Control-Allow-Methods"
   Header add Access-Control-Allow-Origin "*"
</IfModule>

已解决:

这已经通过实现这个答案解决了:https://stackoverflow.com/a/42558499/335547

  • 凭据应作为 fetch 属性包含在内,以便在预检验证中考虑授权标头。
  • API 应将访问控制允许源与特定源主机一起使用,而不是“*”
  • API 应使用访问控制允许凭据“true”

共有1个答案

叶经略
2023-03-14

据我所知,当您定义< code > Access-Control-Allow-Credentials " true " 时,您不能指定< code > Access-Control-Allow-Origin " * " ,您必须将< code > Access-Control-Allow-Origin 定义为一个特定的URL列表

 类似资料:
  • 问题内容: 我正在用babel和webpack编写React应用程序。一直到我尝试在类上添加属性之前,它一直运行得很好-特别是尝试使用React- Toolbox(http://react-toolbox.com/#/components/dropdown)中的Dropdown 并暂时数据连接后,我直接复制了此内容: 这是我的稍作修改的版本: 添加对象后,在webpack:中,在“ state =

  • 我正在尝试将值列表传递给<code>QueryBuilders。termsQuery(),但它抛出错误: Suppressed: org.elasticsearch.client.ResponseException: method [GET], host [http://localhost:9200], URI [/replacement/_search?typed_keys=true 这是我的j

  • 我使用UML Designer for Eclipse4.7.0,在尝试向图中添加新元素时遇到以下错误: 发生错误。有关详细信息,请参阅错误日志。加载器约束冲突:当解析字段“is_detachment”时,引用类org/eclipse/sirius/business/internal/session/danalysis/danglingRefremovalTrigger的类加载器(org/ecli

  • 使用WicketTester时,访问会话的属性会引发NullPointerException错误。 wicket 9之前也有类似的问题:单元测试mockito httpSession 讨论建议使用 测试员。getRequest()。getSession()。setAttribute(“用户名”、“测试用户1”); 而不是 测试员。getHttpSession()。setAttribute(“用户名

  • 我有一个Java类,它使用datastax cassandra驱动程序将pojo写入cassandra表。一切都很好,直到不得不向cassandra表写入一个类对象。它抛出以下错误: 由:com.datastax.driver.core.exceptions.codecNotFoundException引起:未找到请求操作的编解码器:[Frosted <->code.generic.common.

  • 我不知道这是否是一个“反应”解决方案,但我需要从子组件获取父组件的类名,原因如下。如果你能提供一个不同的方法来解决这个问题,我将不胜感激。 我有以下组成部分: 文章标题 ArticleMeta 文章正文 ArticleImage 文章 文章组件当前包括所有其他组件,但我想对此进行更改。我希望我的文章组件如下所示: 我希望有人能写下这样的东西: 我希望ArticleImage,ArticleHead