我正在尝试将我的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。
答案 0 :(得分:1)
您正在尝试执行此操作,因为您正在尝试执行跨站点脚本。沃森不支持这一点。您需要将请求代理到您应用的后端,然后让您的应用将请求汇集到Watson。
例如,an app适用于Personality Insights,它将请求从Angular汇集到后端,然后汇集到Watson。