首页 > 解决方案 > 来自 API 调用的令牌未定义,但在 CURL 中有效

问题描述

我有一个 API,我在其中进行 POST 以获取令牌。我所遵循的 API 的文档来自:https ://apiexplorer.csod.com/apiconnectorweb/apiexplorer#/info 我已经通过 curl 尝试了 API,它按预期返回了一个令牌: 在此处输入图像描述

现在,我尝试通过 JavaScript 做同样的事情。我的代码:

      fetch( proxyUrl + ' https://myCompany.csod.com/services/api/oauth2/token', {
    method: 'POST',
    body: 'grant_type=client_credentials&client_id=' + key + '&client_secret=' + secret + "&scope=employee:read",
    headers: {
        'Content-Type': 'application/json',
       
    }
}).then((response) =>console.log(response))
.then((data) => console.log(data));
    };

这将返回 200 响应:

在此处输入图像描述

但我找不到令牌。我试图 JSON 解析响应等,但它返回“未定义”或空的 {} json 对象。

做一个:

.then(response => response.json()).then(data => console.log(data))

将在控制台返回以下错误:

Uncaught (in promise) SyntaxError: Unexpected token T in JSON at position 0

当我尝试将响应转换为文本并通过控制台将其注销时,我得到了 proxyUrls 站点。

在我看来,这失败而不是 Curl 有 3 个原因:

  1. 我在 JavaScript 中将 proxyUrl 用于 CORS,这可能是原因。
  2. 我控制台记录了错误的响应/令牌。
  3. JavaScript 代码是错误的。

有人知道吗?

标签: javascriptreactjstypescriptcurlcornerstone

解决方案


推荐阅读