0

我正在尝试对我们 Intranet 中的服务器进行 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,在这些情况下似乎默认为这个)。

有人有什么建议吗?

干杯斯

编辑

在服务器上添加了如下标题: 标题截图

现在得到:

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