使用BasicAuth的跨域JSON请求

时间:2015-07-24 14:12:08

标签: jquery ajax cross-domain basic-authentication

我正在开发一个带有API api.example.com的网站example.com。目前,该网站及其API受BasicAuth的保护,使用用户名和密码。

我没有设法从网站到其API进行AJAX调用(我使用jQuery)。我尝试在网络上找到的所有内容都将BasicAuth参数添加到调用中,但没有任何效果。当我使用Chrome检查网络上发生的情况时,我发现没有提交标题,请求方法不是GET而是OPTIONS。

这是我尝试过的最后一件事:

$.ajax({
    url: 'api.example.com/users.json',
    beforeSend: function(xhr) {
        var base64 = btoa(username + ":" + password);
        xhr.setRequestHeader("Authorization", "Basic " + base64);
        xhr.withCredentials = true;
    },
    success: function(data) {
        users = data;
        displayUsers();
    }
});

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

我需要字段xhrFields

$.ajax({
    url: 'api.example.com/users.json',
    xhrFields: {
      withCredentials: true
    },
    success: function(data) {
        users = data;
        displayUsers();
    }
});