0

我们正在尝试在 predix 中使用分析服务。我们已经成功生成了访问令牌,并且能够通过时序服务获取时序数据。

但是当我们尝试将分析服务与我的 Angular 代码 http 请求一起使用时。它抛出 401 授权错误 > 需要访问完整的凭据。但是,如果我使用 Python 或 Postman 请求此服务工作正常,我们将获得所需的输出。

请如果有人知道如何从角度访问 predix 分析服务。

下面是代码:

  $http({
method: 'POST',
   url: 'https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/315f7994-873d-4490-bf13-b21edd25e6bd/deployment',
   headers: {
     'authorization': ctrl.token,
     'predix-zone-id': '7b836258-b05d-4abb-9b63-b6705a4c3946',
     'content-type': 'application/json'
   },
   data: {
     "time_series": [
       112,
       118,
       132,
       129,
       121,
       135,
       148,
       148,
       136,
       119,
       104,
       118
     ],
     "params": {
       "num_forecast": 6,
       "method": "SE",
       "period": 12
     }
   }
 }).then(function successCallback(response) {
   console.log("Excecuted")
 }, function errorCallback(response) {
   if (response.status = 401) { // If you have set 401
     console.log("ohohoh hell yaaa");
   }
 });
4

3 回答 3

1

这里有一些建议:

  1. 在上面的代码中,确保 ctrl.token 包含单词“Bearer”,例如“Bearer 23kjfdu8rj34kfe08fu”
  2. 确保令牌包含访问 Analytics 目录实例的权限。
  3. 尝试使用 Predix 工具包来帮助调试您的问题: https ://predix-toolkit.run.aws-usw02-pr.ice.predix.io/ 在那里您可以解码令牌、配置 UAA 以及对 Predix 服务进行 API 调用。
  4. 考虑将 AJAX 请求从 Angular 发送回您的 Web 服务器,并使用该服务器将请求代理到后端服务。这避免了 CORS 问题。这是一个示例:https ://github.com/PredixDev/predix-seed/tree/develop/server
于 2017-01-19T18:15:05.607 回答
0

这里可能的错误是 Bearer not pass, Bearer need to beapped before access token in Authorization headers

授权承载17MHIFGLIE1d43bPxcnxEmRI5tyT

所以上面的代码是

'授权': '承载'+ctrl.token,

于 2017-04-08T11:50:08.943 回答
0

请在授权标头中添加 Bearer 前缀,如果仍然存在错误,请尝试添加原始标头。

标题:

{
 'authorization': 'Bearer '+ctrl.token,
 'predix-zone-id': '7b836258-b05d-4abb-9b63-b6705a4c3946',
 'content-type': 'application/json',
 'origin':'localhost:<your_port>'
}
于 2018-08-04T12:23:34.413 回答