2016-05-23 31 views
0

WireCloudプロキシはどのように機能しますか?私たちは、WireCloudプロキシを介して要求のために、次のコードを使用します。HTTP POSTリクエストがGETリクエストに変換される

MashupPlatform.http.makeRequest(url, { 
     method: 'POST', 
     forceProxy: true, 
     onSuccess: function (response) { 
      success(response); 
     }, 
     onFailure: function (response) { 
      error(response); 
     }, 
     onComplete: function() { 
      complete(); 
     } 
    }); 

ブラウザのネットワーク分析は、POSTリクエストがhttps://example.com/cdp/https/rest.example.com/path/to/serviceに送信を取得することを示しています。 URLによって呼び出される私たちのWebサービスはログを取って、GETリクエストを受け取ります。

Tomcatでホストされている私たちのRESTサービスのアクセスログを示しています

192.168.60.221 - - [26/May/2016:10:38:31 +0200] "GET /path/to/service HTTP/1.1" 405 1013 
192.168.60.221 - - [26/May/2016:10:38:42 +0200] "POST /path/to/service HTTP/1.1" 204 - 

最初の呼び出しは、上記のMashupPlatform.http.makeRequestコールで行われ、2番目の呼び出しは、次のようにjQueryを使って行われます。

$.ajax({ 
     type: "POST", 
     url: url, 
     data: null, 
     success: success 
    }); 

私たちのWebサービスでCORSヘッダーを設定すると、これは完璧に機能します。

WireCloudsプロキシが期待どおりに動作しない理由は何でしょうか?

+0

urlによって呼び出される_ウェブサービスです。ログには何が記録されますか?そして、どこ? –

+0

tomcatは、アクセスログに要求されたURLと要求メソッドを記録します。 – Newbird

+0

@Newbird、ログをスニペットで提供することをお勧めします(これまでのプライベートデータは削除できます)。そのデータを提供していない場合は、問題を検出するためにそのデータを確認することはできません(詳細については、[stackoverflow guidelines guidelines(http://stackoverflow.com/help/how-to-ask)を参照してください)。この場合に役立つ情報源として、ブラウザの開発者ツールが提供するリクエスト情報があります。 –

答えて

1

MashupPlatform APIとWireCloudのCORSプロキシを使用している多くのウィジェットと演算子があり、POSTリクエストをGETリクエストに変換することはありません。とにかく、jQuery ;-)を使っても問題ありません。さらに、buildProxyURL methodを使用して、CORSヘッダーをサポートしないサービスへの要求を実行するために使用することもできます。例:

url = MashupPlatform.http.buildProxyURL('https://api.example.com/api/endpoing'); 
$.ajax({ 
    method: "POST", 
    url: url, 
    data: null, 
    success: success 
}); 
関連する問題