gpt4 book ai didi

javascript - 向具有不同域和基本身份验证的服务器发出 ajax POST 请求是不可能的吗?

转载 作者:行者123 更新时间:2023-11-28 07:39:18 24 4
gpt4 key购买 nike

我正在尝试向具有不同域的服务器发出 POST 请求,这需要基本身份验证。

我尝试了 beforeSend 和 withCredentials 的每种组合,但基本身份验证 header 从未在 OPTIONS 预检请求中发送。

 $.ajax({
url: anotherdomain,
data: data,
cache: false,
contentType: false,
processData: false,
type: 'POST',
dataType:'json',
xhrFields: {
withCredentials: true
},
crossDomain: true,
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic *');
xhr.withCredentials = true;
}

我似乎让此请求成功的唯一方法是将 dataType 设置为“jsonp”,或将请求“type”设置为 GET。

解决此问题的唯一方法是从另一个域服务器上删除 OPTIONS 请求的基本身份验证要求吗?

谢谢。

最佳答案

您还必须允许服务器上的 header :这是一个 php 示例(这是对所有来源的请求开放的,我建议您将其限制为仅生成 ajax 的站点):

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');

关于javascript - 向具有不同域和基本身份验证的服务器发出 ajax POST 请求是不可能的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248388/

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