0

イントラネット内のサーバーに対して AJAX 呼び出しを実行しようとしていますが、ヘッダーを正しく取得できないようです。

私の呼び出しのコードは次のとおりです。

        $('#btn-create-ticket').click( function(event) {
        $.ajax({
            type: "GET",
            dataType: "json",
            beforeSend: function (xhr)
            {
                xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
                xhr.setRequestHeader ("Authorization", "Basic " + btoa("username" + ":" + "password"));
            },
            url: "http://myservername:3336/sdata/slx/dynamic/-/accounts%28%27"+$("#slx-accountid").val()+"%27%29/Contacts?format=json", 
            async: false, 
            success: function(result){
                var obj = jQuery.parseJSON( result );
                //REMAINING CODE TO GO HERE 
            }
        });
    });

これは SalesLogix SData API への呼び出しであり、JSON のチャンクを返す必要があります。私の問題は、次のエラーが発生し続けることです。

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://myservername:3336/sdata/slx/dynamic/-/accounts%28%27A6UJ9A0013SN%27%29/Contacts?format=json. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

そのため、少し調査した後、正しいヘッダーであると思われるものを追加しましたが、まだ機能しません。Fiddler はまた、意味のないことを教えてくれます。Fiddler で HEADERS を見ると、期待どおりのヘッダーがはっきりとわかります。

access-control-allow-origin,authorization

ただし、AUTHタブの下には次のように記載されています。

No Authorization Header is present.

また、(多くの投稿で提案されているように) dataType を JSONP に変更しようとしましたが、これは効果がありません (おそらく、これらの状況ではデフォルトであると思われる JQuery v2.1.4 を使用しているため)。

誰か提案はありますか?

乾杯 Si

編集

サーバー上で次のようにヘッダーに追加しました。 ヘッダーのスクリーンショット

今取得:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://myservername:3336/sdata/slx/dynamic/-/accounts...... (Reason: CORS preflight channel did not succeed).
4

0 に答える 0