首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBM watson交换分析javascript小部件返回一些未知错误。

IBM watson交换分析javascript小部件返回一些未知错误。
EN

Stack Overflow用户
提问于 2015-08-18 02:01:12
回答 1查看 435关注 0票数 0

我正在尝试运行IBM的Tradeoff Analytics小部件,以便在网页中显示折衷分析图。正在正常启动,但是当我将问题提交给图形显示时,我会得到一些未定义的错误。下面是我使用的运行Tradeoff Analytics Widget的示例代码。

代码语言:javascript
复制
function errorHandler(payload){
   alert(payload.errorMessage);
}

function onShowCompleteCB(payload){
    alert('show Tradeoff graph complete');
}
function onStartCB(payload){
    alert('sending trade-off problem');
    var problem = <problem-json>;
    taClient.show(problem, onShowCompleteCB);
}

var options = { 
    dilemmaServiceUrl : <tradeoff-service-url>, 
    username : <username>,
    password : <password>
};

var taClient = new TradeoffAnalytics(options , document.getElementById('watson_widget'));
var s = taClient.subscribe('afterError', errorHandler);
taClient.start(onStartCB);

我还从javascript调试器中注意到,HTTP对最后一个请求的响应返回了响应头WWW认证:Basic realm="IBM网关登录“。此外,我在javascript控制台中得到了以下错误,XMLHttpRequest无法加载。请求的资源上没有“访问-控制-允许-原产地”标题。因此,“原产地”不允许访问。响应具有HTTP状态代码401。

有人能帮我解决这里可能出的问题吗?

PS:我已经交叉检查了我的用户名和密码,通过基于REST的API调用,它们似乎工作得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 02:20:09

基于您的代码,您正在尝试使用客户端小部件。您需要一个代理应用程序来接收请求并使用您的usernamepassword

在你的客户端,你需要这样的东西:

HTML:

代码语言:javascript
复制
<div id='DIV_ID'></div>

JS:

代码语言:javascript
复制
  taClient = new TA.TradeoffAnalytics({
    customCssUrl: 'https://ta-cdn.mybluemix.net/v1/modmt/styles/watson.css',
    dilemmaServiceUrl: '/proxy',
    profile: 'basic'
  }, 'DIV_ID');

  taClient.subscribe('afterError', function onError(){ /* on error */});
  taClient.start(function onLoad(){ /* on load */});
}

服务器端(Nodejs):

代码语言:javascript
复制
var tradeoffAnalytics = watson.tradeoff_analytics({
  version: 'v1',
  username: '<username>',
  password: '<password>'
});

app.post('/proxy', function(req, res) {
  tradeoffAnalytics.dilemmas(req.body, function(err, dilemmas) {
    if (err)
      return res.status(err.code || 500).json(err.error || 'Error processing the request');
    else
      return res.json(dilemmas);
  });
});

上面,您将找到一个如何使用expresswatson-developer-cloud npm模块实现代理的示例。

github中可以查看完整的示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32062402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档