jQuery - 未提交用户名密码并导致401未经授权

时间:2016-05-11 06:30:07

标签: javascript jquery ajax google-chrome chromium

当我使用Google Chrome浏览器打开此网址http://www.site.nl/a/b/c/d/e?niss=f时,它首先要求输入用户名密码:

enter image description here

当我输入用户名密码时手动获取一些数据。

现在,使用jQuery如何提交该用户名密码?以下是无效的,总是在提交失败后“401未经授权”

$(document).ready(function() {  
  $.ajax({
    type: "GET",
    url: "http://www.site.nl/a/b/c/d/e?niss=f",
    dataType: 'json',
    async: false,
    headers: {
      "Authorization": "Basic Username1:password1234"
    },
    data: '{ "test" }',
    success: function (data, textStatus, jqXHR){
      console.log(data, textStatus, jqXHR);
    }
  });  
});

1 个答案:

答案 0 :(得分:1)

请尝试以下代码

$(document).ready(function() {  
  $.ajax({
    type: "GET",
    url: "http://www.site.nl/a/b/c/d/e?niss=f",
    dataType: 'json',
    async: false,
    data: '{ "test" }',
    beforeSend: function(xhr)
    {
      xhr.setRequestHeader('Authorization', make_base_auth("Username1", "password1234"));
    },
    success: function (data, textStatus, jqXHR){
      console.log(data, textStatus, jqXHR);
    }
  });  
});

function make_base_auth(user,password)
{
  var tok = user + ':' + password;
  var hash = btoa(tok);
  return "Basic " + hash;
} // ends