gpt4 book ai didi

jquery - ajaxSetup(beforeSend 不起作用

转载 作者:行者123 更新时间:2023-12-03 22:36:32 25 4
gpt4 key购买 nike

登录远程 aPI 服务器并获取 access_token 后,我尝试为所有后续 ajax 调用设置授权 header :

      .done(function (result) {
console.log("GOT AUTHORIZATION");
amplify.store( "tokens", { access_token: result.access_token, refresh_token: result.refresh_token, token_type: result.token_type, expires_in: result.expires_in });
var authorization = 'Bearer ' + amplify.store( "tokens" ).access_token;
console.log(authorization);

$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', authorization);
}
});

在控制台上我可以看到:

GOT AUTHORIZATION login.js:34
Bearer 6b7578772fbb4178793100651f2234de840237fe

但是后续的 ajax 调用都没有获得正确的 header 集:

https://macmini.local:8000/Categories?_=1381758170726 

无法成功,因为在 header 中找不到 access_token(服务器控制台..)

{ code: 400,
error: 'invalid_request',
error_description: 'The access token was not found',stack: undefined }
saveAccessToken: 6b7578772fbb4178793100651f2234de840237fe, client_id: 1234567890, user_id: 1

我尝试修改ajax调用中的 header ,但没有成功

最佳答案

更新答案

从 jQuery 1.5 开始 .ajax 支持 headers 属性

$.ajax({
url: "http://fiddle.jshell.net/favicon.png",
headers: {
'Authorization': authorization
}
})
.done(function( data ) {
if ( console && console.log ) {
console.log( "Sample of data:", data.slice( 0, 100 ) );
}
});

注意:authorization 变量应在此调用之前设置

<小时/>

旧答案

$(function(){
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', authorization);
}
});
});

要使 ajaxSetup 工作,您需要在 document.ready 中调用它。

关于jquery - ajaxSetup(beforeSend 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361908/

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