0

jquery コードから Boomi の Restful Web サービスに接続できない問題に直面しています。基本的には、JavaScript から Web サービスへのクロス ドメイン リクエストです。以下は私のjqueryコードです。

<script type="text/javascript">
        function LoadSurvey() {
            makeCorsRequest();
        }
        function makeCorsRequest() {
            jQuery.support.cors = true;
            var URL = 'https://boomi-example.com/ws/rest/Candidate/1';
            $.ajax({
                //beforeSend: function (xhr) {
                //    xhr.setRequestHeader("Authorization", "Basic ZXJuc3R5b3VuZy1NRE5IWEouR1QwS1IwOjAyZGQ1NmNmLTQ0ZDEtNDBlNC05YmNjLTg2M2ViNGUyMzA4NA==");
                //},
                type: "GET",
                //jsonpCallback: 'JSON_CALLBACK',
                //jsonp: false,
                url: URL,
                //dataType: 'jsonp',
                username: '****,
                password: '****',
                //crossDomain: true,
                //xhrFields: {
                //    withCredentials: true
                //},
                headers: {
                    'Authorization': 'Basic ZXJuc3R5b3VuZy1NRE5IWEouR1QwS1IwOjAyZGQ1NmNmLTQ0ZDEtNDBlNC05YmNjLTg2M2ViNGUyMzA4NA=='
                },
                contentType: 'application/json; charset=utf-8',
                success: function (data, textStatus, jqXHR) {
                    alert(JSON.stringify(data));
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(JSON.stringify(jqXHR));
                    alert(textStatus);
                    alert(errorThrown);
                },
                complete: function (jqXHR, textStatus) {
                    alert(JSON.stringify(jqXHR));
                }
            });            
        }
    </script>

私はすでにJavaScript側からすべてを検索して適用しました。boomi のドキュメントに従って、既に設定した Boomi API で CORS ヘッダーを構成する必要があります。しかし、応答ヘッダーを確認すると、それらのヘッダーは返されません。

以下はエラー XMLHttpRequest を読み込めません ...... プリフライト リクエストへの応答がアクセス制御チェックに合格しません: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません ..... オリジンはしたがってアクセスが許可されていません。応答には HTTP ステータス コード 403 がありました。

基本的に、サーバー側から Access-Control-Allow-Origin を設定する必要があります。これは .Net WEB API とうまく連携します。しかし、boomi の場合、origin ヘッダーを返せません。Boomi のドキュメントhttp://help.boomi.com/atomsphere/GUID-0E38FB83-331E-45B1-8E12-0014048D6663.htmlに従って、CORS 要求が機能するためには、以下のヘッダーを応答として返す必要があります。

Access-Control-Allow-Origin: https://example.com

アクセス制御許可メソッド: GET、POST、PUT、DELETE

Access-Control-Allow-Headers: X-Custom-Header、Some-Other-Header

返される応答ヘッダーのみが以下のものです

HTTP/1.1 403 Forbidden Content-Length: 0 サーバー: Jetty(6.1.26-boomi2) Set-Cookie: BIGipServerP_BOOMI10-STAGE.SUCCESSFACTORS.COM-9090=1863780874.33315.0000; パス=/

Jsonp が解決策である場合、Boomi でコールバック関数を記述する方法を教えてください。この要件を満たすプロキシ サーバーを作成できません。

助けてください、事前に感謝します

4

1 に答える 1