gpt4 book ai didi

javascript - 跨源 'Authorization' -header 与 jquery.ajax()

转载 作者:IT王子 更新时间:2023-10-29 03:08:38 25 4
gpt4 key购买 nike

我正在尝试发送跨源域并添加自定义“授权” header 。请看下面的代码。

错误:

XMLHttpRequest 无法加载 {url}。 Access-Control-Allow-Headers 不允许请求 header 字段授权。

function loadJson(from, to) {
$.ajax({
//this is a 'cross-origin' domain
url : "http://localhost:2180/api/index.php",
dataType : 'json',
data : { handler : "statistic", from : from, to : to
},
beforeSend : setHeader,
success : function(data) {
alert("success");
},
error : function(jqXHR, textStatus, errorThrown) {
alert("error");
}
});
}

function getToken() {
var cookie = Cookie.getCookie(cookieName);
var auth = jQuery.parseJSON(cookie);
var token = "Token " + auth.id + ":" + auth.key;
}

function setHeader(xhr) {
xhr.setRequestHeader('Authorization', getToken());
}

我也试过:

headers : { 'Authorization' : getToken() },

在 ajax 请求中。

会不会是jquery-ajax框架屏蔽了跨域认证?我该如何解决这个问题?

更新:

顺便说一句:有没有更安全的方法将 auth.key 存储在客户端然后存储在 cookie 中?getToken() 将替换为更复杂的方法,散列正文、日期等。

最佳答案

这是发出 CORS 请求的示例。如果您有权访问服务器(我假设您这样做,因为这是对本地主机的请求),您将需要添加特定于 CORS 的响应 header 。最简单的做法是添加以下响应 header :

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Authorization

您的服务器还需要配置为响应 HTTP OPTIONS 请求。您可以在此处了解有关发出 CORS 请求的更多信息:http://www.html5rocks.com/en/tutorials/cors/

关于javascript - 跨源 'Authorization' -header 与 jquery.ajax(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559947/

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