使用jQuery进行Ajax身份validation

我能够收到请求的xml

curl -X GET -u username:password url 

但没有

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

没有javascript错误,没有跨域策略问题。 这可能是一个语法错误,但我找不到一个像样的教程。 有什么建议吗?

我想你需要简单的格式:

 $.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; } 

作为beforeSend的替代方法,您可以使用headers属性添加authorization标头。

 $.ajax({ type: 'GET', url: 'url', dataType: 'json', headers: { "Authorization": make_base_auth(user, password) } success: function () {}); }); 

正如另一个答案中所指出的,您应该使用Jquery Ajax的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) { });