AWS Cognito和API Gateway返回状态401

3
我已经正确地在我的API响应头中进行了CORS配置。
当我使用Postman测试带有验证令牌的API时,将其附加在头部('Authorization'),它返回200。
我检查了我的前端代码,看起来没有错误或故障。
这是怎么回事?是否有人遇到过与我现在正在努力解决的问题相同的情况?
补充:
我的前端获取代码如下。
export const getDoc = async (docId, token) => {
    const path = `${apiGateway.URL}`;
    const body = {
        docId: docId
    };
    const headers = {
        Authorization: token,
        'Content-Type': 'application/json'

    };
    const result = await fetch(path, {
        body,
        headers,
    });
    if (result.status !== 200) {
        throw new Error('failed to get doc');
    }
    return result.json();
};

@VijayanathViswanathan 当然,我已经在API网关中完成了基本的CORS配置。就像我上面提到的那样,在Postman中调用API成功。但是在我的前端代码中却不起作用。 - Byoungjun Roy Choi
“Authorization” 请求头和 “Content-Type: application/json” 都会触发浏览器进行预检。因此,问题正如我在之前的评论中所描述的那样:您需要重新配置服务器,以便不要对 OPTIONS 请求要求授权。原因是当浏览器进行预检 OPTIONS 请求时,它不会发送 Authorization 请求头。它不发送的原因是该 OPTIONS 请求的整个目的是让浏览器询问服务器:“您是否允许具有 Authorization 头的跨域请求?” - sideshowbarker
1个回答

2

你只需要在"Token Source"字段中输入"Authorization",而不是'method.request.headers.Authorization'。否则,你将收到401错误。


你能详细解释一下吗? - ChrisGuru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接