我的 ajax CORS 请求遇到问题。我让它在任何其他浏览器中工作,但 Firefox 不发送授权标头。
这是相应的代码
$.ajax(
{
type: "GET",
url: 'http://www.urlhere.com/file.php',
crossDomain: true,
xhrFields: { withCredentials: true },
headers: { 'Authorization': 'Basic .....' },
error: function(data,error,errormsg) {
$('#serverTestLog').html('<h3><span style="color: red">'
+ error + '</h3></span><p>'+errormsg+'</p>');
},
success: function(data) {
$('#serverTestLog').html('<h3><span style="color: green">success</h3>');
}
});
问题似乎是 Chrome 是唯一一个实际发送 Authorization 请求头的浏览器。如果我用 Firefox 尝试它,它会询问我用户名和密码,然后开始一个正确设置标头的新请求,但我想在没有用户交互的情况下执行此操作。
我也尝试替换替换
headers: { 'Authorization': 'Basic .....' },
和
usename: 'username',
password: 'password',
但 Chrome 仍然是唯一在其请求中发送 Authorization 标头的浏览器。这次 Firefox 以
NetworkError:需要 401 授权”,无需询问用户名和密码。
有人知道我该如何解决这个问题吗?