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

从Angular向Camunda REST引擎发送REST调用时获取CORS错误

孟茂学
2023-03-14

我对Camunda很陌生,我想编写一个小的角程序,使用REST引擎控制已部署的BPMN流程。

到目前为止还不错,所以我从Camunda官方站点https://Camunda.com/de/download/下载了开源社区平台。我还能够通过在localhost:8080上初始化的start-camunda.bat和TomCat启动所有内容。我的流程也被部署,我能够通过邮递员发出Rest电话来控制流程和获取信息。

所以REST通过邮递员工作打电话!

this.http.get<any>('http://localhost:8080/engine-rest/process-definition')
    .subscribe(x => console.log(x));
{
  "/engine-rest": {
      "target": "http://localhost:8080"
      "secure": false,
      "logLevel": "debug"
  }
}

Angular.json

"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "angularTest:build",
            "proxyConfig": "src/proxy.conf.json"  <-- Add this line
          },...

如果我执行NG serve,它将告诉我[HPM]Proxy created://engine-rest->http://localhost:8080,但是当我发送Rest调用时,它仍然会给我带来以下CORS错误。

我尝试的第二个解决方案是在server\apache-tomcat-9.0.33\webapps\engine-rest\WEB-INF\web.html" target="_blank">xml下的web.xml顶部添加一个过滤器,然后重新启动服务器。

过滤器

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

所以这两个解决方案都应该修复CORS错误,但在我的情况下,它们没有,我不能解释如何和为什么。所以也许这只是超级简单而我只是愚蠢

共有1个答案

裴弘
2023-03-14

在代理文件中使用以下代码

//Change
{
  "/engine-rest": {
      "target": "http://localhost:8080"
      "secure": false,
      "logLevel": "debug"
  }
}

//TO
{
  "/engine-rest": {
      "target": "https://camunda.com/"
      "secure": false,
      "logLevel": "debug"
  }
}
 类似资料:
  • 我有一个Angular项目,它将发送一个带有值承载的标头Authoration 在其余部分,服务器运行Spring Boot Spring Security OAuth2ResourceServer。 我有一个安全配置类,它启用了Spring Security,它创建了默认的cors过滤器。 然而,我在运行的浏览器上发现了CORS错误http://localhost:4200. 所以我在Sprin

  • null 然后,我尝试使用和基本的,结果相同。对于200范围,我得到了代码,但在上面,我收到的statusCode为0。 更新:我正在运行63.0.3239.132版的Chrome,如果它有什么不同的话。 > 我已经尝试了大约5种不同的fetch变体。 输出字符串错误 使用 -StatusCode对于错误始终为0 null

  • 我需要将一些数据从 Angular 传递到 Node.js 服务器。这是我的角度帖子列表组件:从“@angular/核心”导入 { 组件,OnInit };从 “@angular/common/http” 导入 { HttpClient }; 我的node.js服务器: 我想安慰一下。记录数据,但什么都没有发生。

  • 问题内容: 常见问题 可以从Java servlet的方法发送get reguest 吗?我需要检查一些针对我的Web API .NET服务的“凭单”,因此我可以从该方法中的自定义servlet调用此服务吗? 细节 我们有使用TIBCO Spotfire 7.0作为分析报告引擎的Web应用程序(.NET,MVC5)。为了使我们的用户能够在Web应用程序中查看报告,我们使用Spotfire WebP

  • 我是Node.js的初学者,所以根据项目要求,我试图从Node.js调用REST服务,我从这个SO问题中获得了如何调用rest的信息。这是进行rest调用的代码: 问题是我想发送作为对浏览器的响应,我尝试了但它给我抛出了错误“写入方法未找到”。我到处都在文档中查找,但他们给出的只是console.log.有人能让我知道如何将该数据作为响应发送到浏览器吗?