用于内部AJAX调用的JQuery Headers

时间:2015-08-10 11:50:52

标签: jquery ajax json http-headers sdata

我正在尝试向内部网中的服务器发出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中的HEADERS,我可以清楚地看到我期望的标题:

access-control-allow-origin,authorization

但是,在AUTH标签下,它指出:

No Authorization Header is present.

我也尝试过(如许多帖子中所建议的)将dataType更改为JSONP,但这没有效果(可能是因为我使用的JQuery v2.1.4在这些情况下似乎默认为此。)

有人有什么建议吗?

干杯 硅

修改

已在服务器上添加如下标题: Screenshot of headers

现在得到:

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).

0 个答案:

没有答案