Angular 5:预检响应具有无效的 HTTP 状态代码 403

2024-03-02

当我向服务器发送 POST 请求时,出现错误:

Failed to load http://localhost:8181/test: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 403.

后端是用Java Spring编写的。 我创建测试的方法:

createTest() {
    const body = JSON.stringify({
      'description': 'grtogjoritjhio',
      'passingTime': 30,
      'title': 'hoijyhoit'
    });

    const httpOptions = {
      headers: new HttpHeaders({
          'Content-Type': 'application/json',
          'Accept': 'application/json'
        }
      )
    };

    return this._http.post(`${this._config.API_URLS.test}`, body, httpOptions)
      .subscribe(res => {
        console.log(res );
      }, error => {
        console.log(error);
    });
  }

Get 方法有效,但 Post 无效。他们都在 Swagger 和 Postman 工作。我多次更改 POST 方法。我的代码中的标头不起作用,但我通过将它们扩展到 Google Chrome 解决了问题。只有一个错误:

Response for preflight has invalid HTTP status code 403.

在我看来,这不是 Angular 的问题。请告诉我我或我的朋友(编写后端的人)如何解决这个问题。


问题 :

对于任何跨源 POST 请求,浏览器将首先尝试执行 OPTIONS 调用,当且仅当该调用成功时,它才会执行真正的 POST 调用。但在你的情况下, OPTIONS 调用失败,因为没有'Access-Control-Allow-Origin'响应头。因此实际的调用将不会完成。

解决方案 :

因此,要实现此功能,您需要在服务器端添加 CORS 配置,以设置跨源请求所需的适当标头,例如:

  • response.setHeader("Access-Control-Allow-Credentials", "true");
  • response.setHeader("Access-Control-Allow-Headers", "content-type, if-none-match");
  • response.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS");
  • response.setHeader("Access-Control-Allow-Origin", "*");
  • response.setHeader("Access-Control-Max-Age", "3600");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 5:预检响应具有无效的 HTTP 状态代码 403 的相关文章

随机推荐

  • 使用javascript检查用户是否是第一次访问

    我正在尝试构建一个系统 如果用户第一次登陆某个页面 则不会发生任何事情 但如果同一用户再次访问 则该页面不应加载 而是应该转到不同的 URL function session if document cookie indexOf visit
  • 从文本文件中删除前 N 个字节

    是否有任何函数调用或简单的方法可以从 golang 中的文本文件中删除前 N 个字节 假设该文件被各种 go 例程有争议地附加 同时我想删除文件的前 N 个字节 你需要做f Seek要跳过第一个字节并进行常规读取 请参见示例 package
  • 如何获得 mallet 中某个主题的概率分布?

    使用木槌 我可以获得特定数量的主题及其单词 如何确保主题词符合概率分布 即总和为一 例如 如果我按如下方式运行它 如何使用 mallet 给出的输出来确保主题 0 的主题词的概率加起来为 1 mallet train topics inpu
  • 在Java中使用线程同时执行多个方法[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 就我而言 我有三个不同类别的三种方法
  • 在hibernate标准中使用mysql“按情况排序”

    我正在使用 Hibernate 4 3 1 Final Mysql 5 5 并且我想在某些连接实体上使用 按案例排序 的顺序逻辑 我希望实现的目标的纯 sql 表示如下 select adv id adv published date fr
  • 如何使用 jQuery 从 检索值?

    我必须隐藏输入字段 例如
  • 通过 sql 表中的 100,000 条记录进行通配符搜索的最佳优化技术是什么

    我正在开发 ASP NET MVC 应用程序 该应用程序有 200 个用户使用 这些 用户不断地 每 5 分钟 从 100 000 个项目的列表中搜索一个项目 该列表每个月都会增加 1 2 此 100 000 个项目的列表存储在 SQL S
  • ASP.NET Core AuthorizationHandler 未被调用

    我正在尝试添加一些基于自定义角色的authorisation 但我无法 将启动配置为调用我的AuthorizationHandler 我在GitHub上找到了一些相关信息 here https github com dotnet aspne
  • 我应该如何在这个 2d Java 游戏中实现跳跃/重力/下落

    所以这是我的Player类 我想在空格键上跳转的对象 我只是不知道从哪里开始 我可以在互联网上阅读与我相关的任何好的资源吗 任何帮助都很棒 谢谢 package com zetcode import java awt Color impor
  • 填充与有边距的子项

    让我们首先说我理解盒子模型 在我作为开发人员的短暂时间里 我一直试图非常严格地遵循语义 html 并使用响应式设计实践 我最近在一家新公司找到了一份初级开发人员的工作 而我的先生则坚决反对填充 就像他无论如何都不希望它被使用一样 他希望我在
  • 使用 googletest 进行基准测试?

    背景 如果不感兴趣 请跳到下面的问题 我有一个运行三种状态的模拟器 单线程启动 I O 正常 多线程内存中 CPU 限制模拟阶段 I O 不正常 后模拟 后连接单线程阶段 I O 正常 有没有搞错 在标准测试期间 CPU 使用率从100 降
  • 地图上的条形图

    我正在尝试在地图上绘制垂直条形图 我在网上查看了示例 但不知何故无法做到 我的数据目前采用以下格式 University Count Category lat long 这是我尝试执行的代码 library ggplot2 library
  • 我的环境变量是什么? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想在 bash 中找到我的环境变量 它们存储在某个地方吗 我不确定这是否是您想要的 但请尝试printenv这将显示您所有的环境变量 关于它们的存储
  • 验证失败后移动文件 (Java)

    我们正在验证 XML 文件 根据验证结果 我们必须将文件移动到不同的文件夹中 当 XML 有效时 验证器会返回一个值 我们可以毫无问题地移动文件 当 XML 根据架构无效时 也会发生同样的情况 然而 如果 XML 格式不正确 验证器会抛出异
  • 链接库时默认目录上的 gcc 或 g++ 路径搜索顺序

    我见过this https stackoverflow com a 5817315 7724939文章并了解到 在命令行上指定的目录 L在默认目录之前搜索选项 中指定的目录 L按照在命令行中指定的顺序进行搜索 问题是 默认目录有搜索顺序吗
  • 如何在 numpy 中向量化多个矩阵乘法?

    为了理解我的意思 我有两个数据点 x 0 np array 0 6 1 4 None x 1 np array 2 6 3 4 None 还有一个 2x2 矩阵 y np array 2 2 2 2 如果我表演x 0 T y x 0 I g
  • Perl 跳出 If 语句

    这个刚刚出现 我如何摆脱困境if陈述 我有一个很长的 if 语句 但有一种情况我可以尽早摆脱它 在循环中我可以这样做 while something last if some condition blah blah blah 但是 我可以对
  • 无法使用 FirebaseUI 隐藏授权活动的标题栏

    我尝试使用以下样式 然后我在这里应用了上面的样式 startActivityForResult AuthUI getInstance createSignInIntentBuilder setProviders AuthUI EMAIL P
  • 使用 fmdb 的 SELECT WHERE .. LIKE 的正确参数绑定?

    第一次使用 fmdb 尝试开始正确的操作 我有一个简单的单个表 我希望对其执行 SELECT WHERE LIKE 查询 并且在尝试了几种记录的方法之后 我无法得到任何结果来产生正确的结果 e g filter is an NSString
  • Angular 5:预检响应具有无效的 HTTP 状态代码 403

    当我向服务器发送 POST 请求时 出现错误 Failed to load http localhost 8181 test Response to preflight request doesn t pass access control