Возможно ли включить CORS в службу обмена сообщениями IBM Bluemix?Как включить CORS в сеансе Bluemix
Это означает, что api будет вызываться на клиентском javascript и предотвращать ошибки перекрестного происхождения.
Возможно ли включить CORS в службу обмена сообщениями IBM Bluemix?Как включить CORS в сеансе Bluemix
Это означает, что api будет вызываться на клиентском javascript и предотвращать ошибки перекрестного происхождения.
Взгляд на Conversation API doc это действительно возможно.
Приложения могут также использовать токены для установления аутентифицированных сообщений с услугами Watson без внедрения своих учетных данных в каждом вызове. Вы пишете прокси-сервер аутентификации в Bluemix, чтобы получить токен для своего клиентского приложения, который затем может использовать токен для прямого вызова службы. Вы используете свои учетные данные для получения маркера для этой услуги ...
Существует один дополнительный шаг. Вам нужно будет использовать Authorization Service для создания токена авторизации watson на стороне вашего сервера.
Тогда вы можете использовать свою марку с вашей стороны или с заголовком: X-Watson-Authorization-Token
или как параметр запроса с ключом с именем watson-token
, чтобы отправлять запросы непосредственно в службу разговора.
Ответ, который я предоставил Here, также может помочь вам, поскольку у него есть некоторый рабочий пример кода для службы анализа тонов Watson, который делает то, что я упоминал выше, с php-сервером, используемым для генерации токена авторизации Watson. Вам нужно будет заменить URL-адрес беседы вместо Tone Analyzer.
Существует более простой способ включить CORS для любого сервисного интерфейса. Просто добавьте домен, который вы хотите разрешить CORS в заголовках ответов. Вы можете разрешить запросы, поступающие из любого происхождения, так что вы также можете создать такой заголовок динамически:
app.post('/api/conversation', function(request, response) {
var text = request.body.text;
//this is the point you prepare for CORS
var origin = request.headers.origin;
response.header("Access-Control-Allow-Origin", origin);
//and you have just solved the CORS issue
conversation.message({
workspace_id: 'your-conversation-workspace-id-here',
input: {'text': text},
context: {}
},
function(err, resp) {
if (err){
response.sendStatus(500);
}else{
response.write(JSON.stringify(resp));
response.end();
}
});
});
Update - мы на самом деле пошли другой подход, с использованием PHP, чтобы сделать звонки и отправлять обратно ответы так, Ждут» t необходимо включить CORS и т. д. – AndyOS