1

Возможно ли включить CORS в службу обмена сообщениями IBM Bluemix?Как включить CORS в сеансе Bluemix

Это означает, что api будет вызываться на клиентском javascript и предотвращать ошибки перекрестного происхождения.

+0

Update - мы на самом деле пошли другой подход, с использованием PHP, чтобы сделать звонки и отправлять обратно ответы так, Ждут» t необходимо включить CORS и т. д. – AndyOS

ответ

2

Взгляд на Conversation API doc это действительно возможно.

Приложения могут также использовать токены для установления аутентифицированных сообщений с услугами Watson без внедрения своих учетных данных в каждом вызове. Вы пишете прокси-сервер аутентификации в Bluemix, чтобы получить токен для своего клиентского приложения, который затем может использовать токен для прямого вызова службы. Вы используете свои учетные данные для получения маркера для этой услуги ...

Существует один дополнительный шаг. Вам нужно будет использовать Authorization Service для создания токена авторизации watson на стороне вашего сервера.

Тогда вы можете использовать свою марку с вашей стороны или с заголовком: X-Watson-Authorization-Token или как параметр запроса с ключом с именем watson-token, чтобы отправлять запросы непосредственно в службу разговора.

Ответ, который я предоставил Here, также может помочь вам, поскольку у него есть некоторый рабочий пример кода для службы анализа тонов Watson, который делает то, что я упоминал выше, с php-сервером, используемым для генерации токена авторизации Watson. Вам нужно будет заменить URL-адрес беседы вместо Tone Analyzer.

0

Существует более простой способ включить 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(); 
     } 
    }); 
});