401 闪电网络组件 salesforce 中未经授权的 REST API

问题描述

我正在尝试使用 REST API 在闪电网络组件中执行查询。 Postman 中的请求返回结果成功(启用 Follow Authorization 标头) 但在闪电网络组件的 JavaScript 中,它返回 401 Unauthorized java脚本中的代码如下:

let sessionId = 'tokken';
let baseUrl = window.location.origin;
let header = {
    "Content-Type": "application/json","Accept": "application/json","Authorization": "Bearer " + sessionId,};
if (sessionId) {
    let options = {
        method: "GET",mode: 'no-cors',redirect: 'follow',headers: header,};
    fetch(baseUrl + '/services/data/v50.0/query/?q=SELECT+name+from+Account',options).then((response) => {
        console.log(JSON.stringify(response));
        if (!response.ok) {
            // throw Error(JSON.stringify(response));
        } else {
            return response.json();
        }
    }).then((repos) => {
        console.log(repos,repos);
    });
}

我错过了什么吗?

解决方法

您不能使用“no-cors”模式发送 Authorization 标头。

mode: "no-cors"只允许在请求中包含一组有限的标头:

Accept
Accept-Language
Content-Language
Content-Type with a value of application/x-www-form-urlencoded,multipart/form-data,or text/plain