【问题标题】:Add authentication header via XMLHttpRequest Web API通过 XMLHttpRequest Web API 添加身份验证标头
【发布时间】:2021-04-13 19:48:52
【问题描述】:

有需要写一个XMLHttpRequest Web API的拦截器,我已经写到这个阶段了

const { serverUrl, bearerToken } = this.config;
const XMLHttpRequestOpen = window.XMLHttpRequest.prototype.open;

window.XMLHttpRequest.prototype.open = function (
    method: string,
    url: string
) {
    if (url.match(new RegExp(`^${serverUrl}`)) !== null && bearerToken) {
        this.onreadystatechange = function () {
            if (this.readyState === XMLHttpRequest.OPENED) {
                this.setRequestHeader(
                    'Authorization',
                    `Bearer ${bearerToken}`
                );
            }
        };
    }
    return XMLHttpRequestOpen.apply(this, arguments);
};

不幸的是,即使在开发控制台中我看到身份验证标头,我仍然收到 401 服务器响应。

我错过了什么?不记名令牌是 100% 正确的,所以我的实现有问题。

【问题讨论】:

  • 如果它显示在请求标头中,则可能是服务器而不是前端出现错误。

标签: javascript typescript xmlhttprequest


【解决方案1】:

事实证明我的解决方案是 100% 正确的,问题在于代理上的 CORS 策略。

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 2020-04-24
    • 2014-08-04
    • 1970-01-01
    • 2012-10-02
    • 2017-08-06
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多