如何在jQuery和Ajax中使用Basic Auth

时间:2014-05-28 15:05:33

标签: jquery ajax xmlhttprequest authorization

我遵循了脚本:

var username_my = 'my_useraname';
var password_my = 'my_password';  

function make_base_auth(username_my, password_my) {
  var tok = username_my + ':' + password_my;
  // first try, without success
  // var hash = btoa(tok); 
  var hash = base64.encode(tok);
  return "Basic " + hash;
}     
var xhr = null;
try {
   xhr = new XMLHttpRequest();
} catch (e){
   try{
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e){
      try{
         xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e){
         xhr = null;
      }
   }
}
$.ajax({
    type: "GET",
    url: "https://...",
    dataType: 'json',
    async: false,
    error: function(xhr, status, error) {
              alert("error: "+error+"\n"+status);
            },
    data: { "parameter": "1", "format":"json" },
// try - 1, fail
    // headers: {"Authorization": "Basic " +username_my +":" +password_my},    
// try - 2, fail
    // beforeSend: function (xhr){ 
        // xhr.setRequestHeader('Authorization', make_base_auth(username_my, password_my)); 
    // },
// try – 3, fail
    username: username_my,
    password: password_my,
    success: function (status){
        alert('Thanks for your comment! '+status); 
    }

}).fail(function( status) {
    var aus = "";
    jQuery.each(status, function(i, v){
        aus += i+",\t\t "+v+"\n";
    });
    alert( aus );
}).done(function( status) {
    alert( status );
});

我无法向服务器授权。 从scritp我得到以下错误消息: 第一次发出警告:

  

错误:[例外...“访问受限制的URI被拒绝”代码:“1012”nsresult:“0x805303f4>(NS_ERROR_DOM_BAD_URI)”location:“。to jquery ..jquery-1.11.1.js?v = 131209>行:9631“]   错误

第二警报:

  

...}   responseJSON,未定义   状态,0   statusText,[Exception ...“访问受限制的URI被拒绝”代码:“1012”> nsresult:“0x805303f4(NS_ERROR_DOM_BAD_URI)”location:“... jquery / jquery-1.11.1.js?> v = 131209行:9631“]

我使用jQuery 1.11.1

如果我在浏览器中提供了URL,我会获得授权窗口,并且会返回登录凭据和服务器中的数据。

我尝试了三种不同的身份验证类型,但没有工作 有谁知道验证的错误是什么?

问候

0 个答案:

没有答案