2017-09-27 10 views
0

を呼び出すためのREST APIは、私のサーバー側のRPCモジュール関数を呼び出すために呼び出します。Wakanda 2 - 私はRESTを使用したいRPC

私は実際に近い場所に何かを持っていますが、それは私に500の内部サーバーエラーを与え、トラブルシューティングの方法がわかりません。以下は私が持っているものです。 RPCは、モジュールのために、私のプロジェクトの設定で有効になっています。 CORSは許可されています。

rpc(moduleName: string, methodName: string, params: any[]): Promise<any> { 
     let data = { 
      jsonrpc: '2.0', 
      //id: 167972631107, 
      module: moduleName, 
      method: methodName, 
      params: params 
     }; 

     let headers = new Headers({ 
      'Content-Type': 'application/json' 
     }); 

     return this.http.post(`http://127.0.0.1:8081/rpc/`, JSON.stringify(data), headers).toPromise(); 
    } 
+0

注:実際には正しいですが、モジュール自体に問題がありました。具体的には、新しい 'directory.currentSession'の代わりに' currentSession() 'を使ってモジュールのセッションデータを取得していました。その理由は、RPCコールは、500サーバーエラーを返しました。 – NAMS

答えて

1

まず、モジュールがクライアント側から実行する権限を持っているかどうかを確認します

<?xml version="1.0" encoding="UTF-8"?> 
    <permissions> 
     <allow type="module" resource="myRPC" action="executeFromClient"/> 
    </permissions> 

第二に、500エラーが原因で送信された不正なパラメータにサーバー側の実行中に未処理のエラーを示している可能性がありますクライアント、または単にモジュール内の悪いコードです。あなたは、POSTリクエストによって送信されたデータを検証するために、ブラウザのネットワークインスペクタを使用することができます。または、ブレークポイントを設定するためにRPCコードに "デバッガ"トレースステートメントを配置します。要求がサーバーによって受信された場合、実行はブレークポイントで停止し、そこからランタイムを検査できます。

+0

もう一度ありがとう翔:) – NAMS

関連する問題