使用HTTP基本身份验证与Aj​​ax调用

时间:2015-01-12 14:19:29

标签: jquery ajax http authentication http-headers

我需要联系服务器以使用HTTP服务。

尝试使用浏览器访问该服务,使用https://example.com/service我获得了基本身份验证对话框。

将网址更改为https://username:password@example.com/service可轻松绕过该网址。

尝试使用Ajax执行相同操作始终会导致401 Unauthorized

$.ajax({
    url: 'https://username:password@example.com/service',
    // rest repeats
    type: "GET",
    async: true,
    success: function(text) { alert('success'); },
    error: function (text) { alert('error') },
    complete: function(text) { alert('complete'); }
});
 
$.ajax({
    url: 'https://example.com/service',
    username: username,
    password: password,
    // snip repeat
});
$.ajax({
    url: 'https://example.com/service',
    beforeSend: function(xhr) {
        xhr.setRequestHeader("Authorization", "Basic "
            + btoa(username + ":" + password));
    },
    // snip repeat
});

1 个答案:

答案 0 :(得分:8)

我自己也遇到了类似的情况...... 诀窍是使用jsonp(呃):

<script src='//maps.googleapis.com/maps/api/js?v=3.exp&amp;sensor=false'></script>