1

IBM Bluemix ConversationサービスでCORSを有効にすることはできますか?Bluemix ConversationでCORSを有効にする方法

これは、クライアントサイドのJavaScriptでapiを呼び出すことができ、クロスオリジンのエラーを防ぐためです。

+0

アップデート - 私たちは、実際に電話をかけることなどなかったの応答を返送するためにPHPを使用して、別のアプローチを行ってきました」をCORSなどを有効にする必要がある – AndyOS

答えて

2

Conversation API docをご覧ください。

アプリケーションは、トークンを使用して、すべての呼び出しでサービス資格情報を埋め込むことなく、ワトソンサービスとの認証された通信を確立することもできます。 Bluemixに認証プロキシを作成してクライアントアプリケーション用のトークンを取得し、そのトークンを使用して直接サービスを呼び出すことができます。サービスの資格情報を使用して、そのサービスのトークンを取得します...

追加のステップが1つあります。サーバー側でwatson認証トークンを生成するには、Authorization Serviceを使用する必要があります。

X-Watson-Authorization-Tokenのトークンを使用するか、watson-tokenという名前のキーを持つクエリパラメータとして、トークンを使用して会話サービスに直接リクエストすることができます。

私が答えたHereは、Watson認証トークンを生成するために使用されたPHPサーバーで上記のことを行うWatsonトーンアナライザサービス用の動作中のサンプルコードを持っています。トーンアナライザーの代わりに会話URLを代用する必要があります。

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(); 
     } 
    }); 
}); 
関連する問題