【问题标题】:Enabling CORS Support in Rasa Core HTTP API在 Rasa Core HTTP API 中启用 CORS 支持
【发布时间】:2018-04-24 06:36:08
【问题描述】:

我正在试验 Rasa Core 框架的默认 MoodBot example。我开发了一个简单的 Angular 5 应用程序作为对话流的前端。 Rasa HTTP API 在基于 Linux 的后端服务器上运行,端口为 5005(我们称之为http://my.very.own.server:5005/),使用以下命令:

python3 -m rasa_core.server -d models/dialogue -u models/nlu/default/current -o out.log

我可以使用 Postman 应用程序与服务器通信并获得有效响应。但是当我从我的 Angular 应用程序中尝试相同的操作时,它会返回一个 404 (Not found) 错误。

使用邮递员(工作):

POST:my.very.own.server:5005/conversations/default/parse
请求正文:{"query":"hi" }
标头:内容类型:application/json
响应:成功 (200) - 收到有效的 JSON 内容

使用 Angular 应用(不工作):

public getResponse(query: string) {

  let finalUrl: string = "http://my.very.own.server/" + "conversations/default/parse/";

  let data = {
    'query' : query
  }
  return this.http.post(
      `${finalUrl}`, data
    ).map(res => {
      return res.json()
    })
}

// Call the method using:

getResponse("hi").subscribe(res => {
  console.log(res);
});

这会导致控制台错误:

Failed to load http://my.very.own.server:5005/conversations/default/parse/:
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 404.

我尝试过的:

  1. 我尝试使用额外的 --cors 参数运行 Rasa 服务器(如 here 所示):

python3 -m rasa_core.server -d models/dialogue -u models/nlu/default/current -o out.log --cors ["*"]

  1. 我尝试将"cors_origins" : ["*"] 添加到nlu_model_config.json 文件中(如here 所示)。

两种方式都没有区别。我在这里做错了什么,我该怎么做才能从 Rasa HTTP API 正确启用 CORS 支持?

【问题讨论】:

    标签: angular cors rasa-nlu rasa-core


    【解决方案1】:

    我们最近修复了这个问题,因此您需要 this PR 。现在你必须克隆 master,但我们很快就会发布一个新版本 0.9,所以它也可以在 pypi 上使用。

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 2015-07-16
      • 2017-11-22
      • 2019-02-11
      • 2019-01-24
      • 2017-02-08
      • 2019-12-20
      • 2013-01-28
      • 2019-10-03
      相关资源
      最近更新 更多