javascript - 来自 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 个原因:
- 我在 JavaScript 中将 proxyUrl 用于 CORS,这可能是原因。
- 我控制台记录了错误的响应/令牌。
- JavaScript 代码是错误的。
有人知道吗?
解决方案
推荐阅读
- java - 如何将切换组中的选定单选按钮保存到 MySQL 数据库 JavaFx
- sql-server - 在 SQL Server 中重新编号列
- c++ - 主线程中块范围静态与命名空间范围 thread_local 的初始化和销毁顺序
- java - 如何解决 java.sql.SQLException:构造描述符失败:TYPECODE_VARCHAR2 无法解析类型错误?
- google-sheets - 第一次输入后自动锁定 Google 表格单元格
- asp.net - Shabdar 的 ASP.NET 谷歌地图控件不起作用
- keras - Jupyter notebook - “没有名为 keras 的模块”,但已导入
- php - 在 HTML 中使用 PHP 字符串作为元素 ID
- laravel - Vue 组件可以加载 message.user 但不能加载 message.user.name
- java - 如何从对象列表中将项目添加到 JComboBox