我可以用
收到请求的xmlcurl -X GET -u username:password url
但不是
$.get('url',
{username:"username",password:"password"},
function (data) {
});
没有javascript错误,没有跨域政策问题。 这可能是一个语法错误但我找不到一个体面的教程。 有什么建议吗?
答案 0 :(得分:21)
我认为你需要简单的格式:
$.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;
}
答案 1 :(得分:2)
作为headers
的替代方法,您可以使用authorization
属性添加$.ajax({
type: 'GET',
url: 'url',
dataType: 'json',
headers: {
"Authorization": make_base_auth(user, password)
}
success: function () {});
});
标题。
public_key
答案 2 :(得分:1)
正如另一个答案所指出的那样,你应该使用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) {
});