具有Angular Http请求的Predix Analytics服务

时间:2017-01-19 11:57:37

标签: angularjs http-headers predix

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

但是当我们尝试使用我的角度代码http请求的分析服务时。 它抛出401授权错误>完整的crendential需要访问。 但是,如果我使用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");
   }
 });

3 个答案:

答案 0 :(得分:1)

以下是一些建议:

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

答案 1 :(得分:0)

此处可能的错误是未传递承载,需要在授权标头中的访问令牌之前应用承载

授权承载17MHIFGLIE1d43bPxcnxEmRI5tyT

所以上面的代码是

'授权':'bearer'+ ctrl.token,

答案 2 :(得分:0)

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

标题:

{
 'authorization': 'Bearer '+ctrl.token,
 'predix-zone-id': '7b836258-b05d-4abb-9b63-b6705a4c3946',
 'content-type': 'application/json',
 'origin':'localhost:<your_port>'
}