在 Rasa Core HTTP 中启用 CORS 支持 API
Enabling CORS Support in Rasa Core HTTP API
我正在使用以下命令试验默认值 MoodBot example of Rasa Core framework. I have developed a simple Angular 5 app to serve as a front-end for the conversation flow. The Rasa HTTP API is run on a Linux-based back-end server at port 5005 (let's call it http://my.very.own.server:5005/):
python3 -m rasa_core.server -d models/dialogue -u models/nlu/default/current -o out.log
我可以使用 Postman 应用程序与服务器通信并获得有效响应。但是当我在我的 Angular 应用程序中尝试相同的操作时,它 returns 一个 404 (Not found)
错误。
使用邮递员(工作):
POST: my.very.own.server:5005/conversations/default/parse
请求的Body:{"query":"hi"}
Headers: Content-Type: 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.
我尝试过的:
- 我尝试 运行 带有附加
--cors
参数的 Rasa 服务器(如图 here 所示):
python3 -m rasa_core.server -d models/dialogue -u models/nlu/default/current -o out.log --cors ["*"]
- 我尝试将
"cors_origins" : ["*"]
添加到 nlu_model_config.json
文件(如图 here 所示)。
两种方式都没有区别。我在这里做错了什么,我该怎么做才能从 Rasa HTTP API?
正确启用 CORS 支持
我们最近解决了这个问题,因此您需要 this PR。现在您必须克隆 master,但我们很快将发布新版本 0.9,因此它也可以在 pypi 上使用。
我正在使用以下命令试验默认值 MoodBot example of Rasa Core framework. I have developed a simple Angular 5 app to serve as a front-end for the conversation flow. The Rasa HTTP API is run on a Linux-based back-end server at port 5005 (let's call it http://my.very.own.server:5005/):
python3 -m rasa_core.server -d models/dialogue -u models/nlu/default/current -o out.log
我可以使用 Postman 应用程序与服务器通信并获得有效响应。但是当我在我的 Angular 应用程序中尝试相同的操作时,它 returns 一个 404 (Not found)
错误。
使用邮递员(工作):
POST: my.very.own.server:5005/conversations/default/parse
请求的Body:{"query":"hi"}
Headers: Content-Type: 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.
我尝试过的:
- 我尝试 运行 带有附加
--cors
参数的 Rasa 服务器(如图 here 所示):
python3 -m rasa_core.server -d models/dialogue -u models/nlu/default/current -o out.log --cors ["*"]
- 我尝试将
"cors_origins" : ["*"]
添加到nlu_model_config.json
文件(如图 here 所示)。
两种方式都没有区别。我在这里做错了什么,我该怎么做才能从 Rasa HTTP API?
正确启用 CORS 支持我们最近解决了这个问题,因此您需要 this PR。现在您必须克隆 master,但我们很快将发布新版本 0.9,因此它也可以在 pypi 上使用。