Jquery 如果标题已修改,则在Firebug中看不到Ajax请求
我正在使用jQuery的库对api进行ajax调用,这需要在标头中添加编码为base64的用户名和密码 以下是一个基本示例:Jquery 如果标题已修改,则在Firebug中看不到Ajax请求,jquery,ajax,http-headers,basic-authentication,Jquery,Ajax,Http Headers,Basic Authentication,我正在使用jQuery的库对api进行ajax调用,这需要在标头中添加编码为base64的用户名和密码 以下是一个基本示例: $.ajax({ type: "GET", contentType: 'application/json', beforeSend:function(xhr){ xhr.setRequestHeader("Authentication", "Basic " + base64EncodedValue); } u
$.ajax({
type: "GET",
contentType: 'application/json',
beforeSend:function(xhr){
xhr.setRequestHeader("Authentication", "Basic " + base64EncodedValue);
}
url: 'https://api.company.com/uri/',
complete: function(result) {
alert(result);
}
});
但当它启动时,我会看到一个黑色的警报框,所以它看起来好像没有什么东西回来了。Firebug控制台中没有完成get ajax请求的日志
但是,如果我删除beforeSend选项,我确实会看到ajax请求被记录下来,但是请求会返回一个“未授权”,因此它肯定找到了正确的位置
关于为什么它没有出现在Firebug中以便我可以验证标题是否正确发送的原因,有什么想法吗?我会说,这是因为您没有一个“,”前url
$.ajax({
type: "GET",
contentType: 'application/json',
beforeSend:function(xhr){
xhr.setRequestHeader("Authentication", "Basic " + base64EncodedValue);
}
,url: 'https://api.company.com/uri/',
complete: function(result) {
alert(result);
}
});
可能是错的,但这是我的猜测
安德鲁我会说,这是因为你没有一个“,”前url
$.ajax({
type: "GET",
contentType: 'application/json',
beforeSend:function(xhr){
xhr.setRequestHeader("Authentication", "Basic " + base64EncodedValue);
}
,url: 'https://api.company.com/uri/',
complete: function(result) {
alert(result);
}
});
可能是错的,但这是我的猜测
Andrew刚刚遇到了类似的问题,JQuery似乎不支持为跨域请求设置身份验证头 我在80端口发送的脚本中:
$.ajax({
beforeSend : function(req) {
req.setRequestHeader('Authorization', auth);
},
url: 'http://localhost:8282/Blahblah',
success: function(data) {
console.log("data=" + data);
}
});
我没有看到在请求上设置自动化头。我把它改成了
$.ajax({
beforeSend : function(req) {
req.setRequestHeader('Authorization', auth);
},
url: 'http://localhost/Blahblah',
success: function(data) {
console.log("data=" + data);
}
});
似乎发生的事情是,JQuery检测到这是一个跨域请求(在我的情况下是因为端口的不同,在您的情况下可能是因为不同的主机?),然后悄悄地切换到不支持基本身份验证的JSONP
看
我知道你的问题很老了,但是谷歌把我带到这里,其他人也可以带到这里。刚刚遇到了类似的问题,JQuery似乎不支持为跨域请求设置身份验证头 我在80端口发送的脚本中:
$.ajax({
beforeSend : function(req) {
req.setRequestHeader('Authorization', auth);
},
url: 'http://localhost:8282/Blahblah',
success: function(data) {
console.log("data=" + data);
}
});
我没有看到在请求上设置自动化头。我把它改成了
$.ajax({
beforeSend : function(req) {
req.setRequestHeader('Authorization', auth);
},
url: 'http://localhost/Blahblah',
success: function(data) {
console.log("data=" + data);
}
});
似乎发生的事情是,JQuery检测到这是一个跨域请求(在我的情况下是因为端口的不同,在您的情况下可能是因为不同的主机?),然后悄悄地切换到不支持基本身份验证的JSONP
看
我知道你的问题很老了,但谷歌把我带到了这里,也可能把其他人带到这里