gpt4 book ai didi

带有凭据的 jQuery CORS 仅适用于 Chrome

转载 作者:行者123 更新时间:2023-12-01 06:00:01 24 4
gpt4 key购买 nike

我的 ajax CORS 请求遇到问题。我让它可以在任何其他浏览器中工作,但 Firefox 不发送授权 header 。

这是相应的代码

$.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 header 的浏览器。如果我用 Firefox 尝试,它会要求我输入用户名和密码,然后启动一个 header 设置正确的新请求,但我想在没有用户交互的情况下执行此操作。

我也尝试过替换替换

headers: { 'Authorization': 'Basic .....' },

usename: 'username',
password: 'password',

但 Chrome 仍然是唯一在请求中发送 Authorization header 的浏览器。这次 Firefox 结束请求

NetworkError: 401 Authorization Required" without asking for username and password.

有人知道我该如何解决这个问题吗?

最佳答案

由于您发送请求 withCredentials,因此会在实际请求之前发出预检请求。预检 OPTIONS 请求不包含用户凭据 per the CORS spec

OPTIONS 请求很可能会响应 401,并且 Firefox 会正确报告该情况。

Chrome 存在 Unresolved 错误和 WebKit即使 OPTIONS 请求由于 401 失败,预检后的后续请求仍然会发送。

关于带有凭据的 jQuery CORS 仅适用于 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12245917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com