jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – ajaxSetup(beforeSend不工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
登录到远程aPI服务器并获取access_token后,我尝试为所有后续的ajax调用设置授权头:
.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调用都没有得到正确的标头集:

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

无法成功,因为在标头(服务器控制台..)中找不到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调用中的标题,任何成功

解决方法

更新的答案

从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 ) );
    }
});

注意:应在此调用之前的某处设置授权变量

老答案

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

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

大佬总结

以上是大佬教程为你收集整理的jquery – ajaxSetup(beforeSend不工作全部内容,希望文章能够帮你解决jquery – ajaxSetup(beforeSend不工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: