イントラネット内のサーバーに対して 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).