Javascript 授权头在AJAX CORS请求中只追加一次
我在CORS场景中从Javascript调用RESTful API 我正在使用JQuery发送经过身份验证的请求。 以下是一个例子:Javascript 授权头在AJAX CORS请求中只追加一次,javascript,jquery,ajax,cors,Javascript,Jquery,Ajax,Cors,我在CORS场景中从Javascript调用RESTful API 我正在使用JQuery发送经过身份验证的请求。 以下是一个例子: function post(settings, addAccessToken) { settings.type = 'POST'; settings.cache = false; if (settings.dataType === undefined) settings.dataType =
function post(settings, addAccessToken) {
settings.type = 'POST';
settings.cache = false;
if (settings.dataType === undefined)
settings.dataType = 'json';
if (addAccessToken) {
settings.xhrFields = { withCredentials: true };
settings.beforeSend = function (request) {
request.setRequestHeader('Authorization', 'Bearer <my access token>');
};
settings.headers = {
'Authorization': 'Bearer <my access token>'
};
}
return $.ajax(settings);
}
函数post(设置,addAccessToken){
settings.type='POST';
settings.cache=false;
if(settings.dataType==未定义)
settings.dataType='json';
if(addAccessToken){
settings.xhrFields={withCredentials:true};
settings.beforeSend=函数(请求){
setRequestHeader('Authorization','Bearer');
};
settings.headers={
“授权”:“持票人”
};
}
返回$.ajax(设置);
}
在服务器端,我可以看到第一个调用带有正确值的“Authorization”头,而其他所有调用都没有这样的头
我错过了什么
多谢各位
cghersi我解决了我的问题,所以我想向其他处于相同情况的人给出答案 1) 问题是从服务器端启用选项http请求。事实上,第一次调用同一个url,但使用动词“OPTIONS”,然后使用POST | GET方法第二次调用真实url。如果服务器没有正确响应第一个“选项”调用,例如指定正确的允许标头等,则第二个调用将不起作用 2) 符号
settings.headers = {
'Authorization': 'Bearer <my access token>'
};
settings.headers={
“授权”:“持票人”
};
它不起作用。设置标题的唯一方法是:
settings.beforeSend = function (request) {
request.setRequestHeader('Authorization', 'Bearer <my access token>');
};
settings.beforeSend=函数(请求){
setRequestHeader('Authorization','Bearer');
};
希望这可以帮助其他人在未来
格赫西