获取对watson音调分析器api的请求返回No'Access-Control-Allow-Origin'401错误

时间:2016-10-25 17:01:46

标签: javascript ibm-cloud watson

当我执行get请求将我的内容发送到watson token analyzer api以获取音调分析json时,它返回401 No'Access-Control-Allow-Origin'错误。我是用客户端用javascript做的。

是否可以通过客户端的get请求查询音调分析器api?

这就是我正在做的事情:

$.ajax({
    url:'https://gateway.watsonplatform.net/tone-analyzer/api/v3/tone?version=2016-05-19&text='+encodeURI(input),
    data:{
        'username':'password'
    },
    contentType:'application/json',
    method:'GET',
    success:function(tone){
        console.log(tone);
    }
});

请求令牌客户端使用api客户端:

$.ajax({
    url:'https://gateway.watsonplatform.net/authorization/api/v1/token',
    data:{
        'url':'https://gateway.watsonplatform.net/tone-analyzer/api/v3/tone',
        'username':'password'
    },
    dataType:'jsonp',
    contentType:'application/javascript',
    method:'GET'
});

1 个答案:

答案 0 :(得分:1)

看起来Tone Analyzer支持CORS,允许选项#2低于

你可以:

  1. 使用API​​服务器端
  2. 使用authorization service在服务器端获取身份验证令牌(1小时后过期)。将该令牌返回给您的客户端,以便您的javascript调用可以在客户端请求Tone Analyzer API时使用该令牌。
  3. 以上#2的示例是here