6

リクエストされたxmlを次のように受け取ることができます

curl -X GET -u username:password url

しかし、ではありません

$.get('url',
        {username:"username",password:"password"},
        function (data) {


        });

javascriptエラー、クロスドメインポリシーの問題はありません。構文エラーの可能性がありますが、まともなチュートリアルをまだ見つけることができませんでした。何か提案はありますか?

4

3 に答える 3

23

プレーンフォーマットが必要だと思います:

$.ajax({
    type: 'GET',
    url: 'url',
    dataType: 'json',
    //whatever you need
    beforeSend: function (xhr) {
        xhr.setRequestHeader('Authorization', make_base_auth(user, password));
    },
    success: function () {});
});

function make_base_auth(user, password) {
    var tok = user + ':' + password;
    var hash = btoa(tok);
    return 'Basic ' + hash;
}
于 2012-04-19T10:44:54.567 に答える
3

代わりに、プロパティを使用してヘッダーを追加するbeforeSendこともできます。headersauthorization

$.ajax({
    type: 'GET',
    url: 'url',
    dataType: 'json',
    headers: {
        "Authorization": make_base_auth(user, password)
    }
    success: function () {});
});
于 2016-09-30T02:27:36.640 に答える
1

他の回答で指摘されているように、JqueryAjaxのbeforeSend関数を使用して認証ヘッダーを追加する必要があります

function setAuthHeader(xhr){
            var creds = username + ':' + password;
            var basicScheme = btoa(creds);
            var hashStr = "Basic "+basicScheme;
            xhr.setRequestHeader('Authorization', hashStr);
    }

  $.get('url',
         beforeSend: setAuthHeader,
        function (data) {


     });
于 2012-04-19T10:46:00.350 に答える