jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 将Authorization标头附加到Ajax请求的正确方法是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ajax GET请求我在Knockout代码的一部分中触发,我需要确保设置Authorization标头.

我的偏好通常是使用jQuery简写方法,如下所示:

$.getJSON("/api/business",function (allData) {
    var mappedOrgs = $.map(allData,function (item) { return new Business(item) });
    self.businesses(mappedOrgs);
});

没有任何身份验证要求,这本身就没问题,但如果我需要包含持票人令牌,我一直在尝试更冗长的方式:

var token = sessionStorage.getItem(tokenKey);
var headers = {};
if (token) {
    headers.Authorization = 'Bearer ' + token;
}

$.ajax({
    type: 'GET',url: '/api/business',headers: headers
}).done(function (data) {
    var mappedOrgs = $.map(data,function (item) { return new Business(item) });
    self.businesses(mappedOrgs);
}).fail(function () { console.error('api call Failed'); });

即使试图通过$.ajaxSend()方法强制解决问题也不会产生任何结果.

$(document).ajaxSend(function (event,xhr,setTings) {
    var token = sessionStorage.getItem(tokenKey);
    var headers = {};
    if (token) {
        console.info("Found token. Attaching to headers.");
        headers.Authorization = 'Bearer ' + token;
        setTings.headers = headers;
        //console.info(headers);
    }
});

那我在俯瞰什么?我正在检查fiddler中的每个请求,并且永远不会附加Auth标头.显然有一种正确的方法可以做到这一点,但我在某个地方错过了一步.任何帮助赞赏.

解决方法

我使用以下内容
function getListData(url) {
    var d = new $.Deferred();
    cfg.apiLoad();

    $.ajax({
        url: baseUrl + url,type: 'GET',headers: { "x-access-token": secure.getToken(),"x-access-finger": finger.getFinger() },dataType: 'json'
    }).fail(function(a,b,C) {
        cfg.failError(c);
        d.reject(c);
    }).done(function (r) {
        cfg.apiDone(r);
        d.resolve(r.ListResults);
    });

    return d.promise();
}

您可以在那里添加任意数量的额外标题,忽略cfg.东西,但这是在一个网络文件,如在写一次,使用每一个
getListData(‘/ api / Name / Endpoint’).then(function(r){‘// do something});

然后,这解决了必须重复等任何问题,并像魅力一样工作.我的API为任何类型的结果返回相同的模型

大佬总结

以上是大佬教程为你收集整理的jquery – 将Authorization标头附加到Ajax请求的正确方法是什么?全部内容,希望文章能够帮你解决jquery – 将Authorization标头附加到Ajax请求的正确方法是什么?所遇到的程序开发问题。

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

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