AngularJs和Bluemix QA API无法发布帖子请求

时间:2015-08-24 16:06:07

标签: javascript angularjs ibm-cloud

我正在尝试将我的Angular应用程序连接到Bluemix QA API。所以我有这个代码。

$http({
        method: 'POST',
        url: 'https://gateway.watsonplatform.net/question-and-answer-beta/api/v1/question/healthcare',
        headers: {
            'Content-Type': 'application/json',
            'Authorization':'Basic mytoken',
            'X-SyncTimeout': 30
        },
        data: {
            'question': {
                'questionText': 'Malaria?'
            }
        }
    }).then(function(response){
        $scope.response = JSON.stringify(response);
    });

我的app.js上还有这个

.config([
'$routeProvider',
'$httpProvider',
function($routeProvider, $httpProvider){
    $httpProvider.defaults.headers.common['Access-Control-Allow-Origin'] = '*';
    $httpProvider.defaults.headers.common['Access-Control-Allow-Headers'] = '*';

}])

但是当我尝试运行该方法时,我收到此错误:

Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers.

如果我尝试删除标题,它会在另一个标题中给我一个问题。那么,有什么想法吗?或者任何ajax例子?我知道有一些nodejs示例,但我想知道是否可以直接连接到api。

1 个答案:

答案 0 :(得分:1)

您正在尝试执行此操作,因为您正在尝试执行跨站点脚本。沃森不支持这一点。您需要将请求代理到您应用的后端,然后让您的应用将请求汇集到Watson。

例如,an app适用于Personality Insights,它将请求从Angular汇集到后端,然后汇集到Watson。