Javascript 角度+;Rails访问控制头
从Rails应用程序中的Angular controller向opencalais API发送$http.post时,我收到一个访问控制允许原点错误: 无法加载XMLHttpRequest。“Access Control Allow Origin”标头的值“”不等于提供的源。因此,不允许访问源“” 以下是我的Angular controller中的API调用:Javascript 角度+;Rails访问控制头,javascript,ruby-on-rails,ruby,angularjs,ruby-on-rails-4,Javascript,Ruby On Rails,Ruby,Angularjs,Ruby On Rails 4,从Rails应用程序中的Angular controller向opencalais API发送$http.post时,我收到一个访问控制允许原点错误: 无法加载XMLHttpRequest。“Access Control Allow Origin”标头的值“”不等于提供的源。因此,不允许访问源“” 以下是我的Angular controller中的API调用: function fetchTags() { var token = API-KEY, query = $scope.b
function fetchTags() {
var token = API-KEY,
query = $scope.brief.description;
$http.post('https://api.thomsonreuters.com/permid/calais?access-token=' + token, query, {
headers: {
'Content-Type': 'text/raw',
'OutputFormat': 'application/json',
'X-AG-Access-Token': API-KEY,
'Access-Control-Allow-Origin': '*'
}
}).success(function(data) {
console.log(data);
});
}
我已经阅读并尝试了几种设置访问控制头的不同方法,或者通过Angular请求,或者甚至通过Rails应用程序_controller.rb中的before_过滤器,但它们似乎都会产生相同的响应
此外,我已经在Postman中复制了请求,只需将URL和头设置为与上面相同,它就可以完美地工作
任何想法或链接将不胜感激,谢谢
编辑:以下是来自Chrome的请求/响应标题:
请求:
选项/permid/calais?访问令牌=API-KEY HTTP/1.1
主持人:api.thomsonreuters.com
连接:保持活力
访问控制请求方法:POST
来源:
用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10_10_4)AppleWebKit/537.36(KHTML,如Gecko)Chrome/44.0.2403.107 Safari/537.36
访问控制请求标头:接受、访问控制允许来源、内容类型、输出格式、x-ag-Access-token、x-csrf-token
接受:/
DNT:1
推荐人:
接受编码:gzip、deflate、sdch
接受语言:en-US,en;q=0.8
答复:
HTTP/1.1200ok
内容类型:application/json
访问控制允许来源:
访问控制允许标头:accept、x-ag-Access-token、授权、outputformat、内容类型、x-openmatch-numberofmatchesperrecord、x-openmatch-datatype、x-calais-language
访问控制最大年龄:3628800
访问控制允许方法:GET、POST、OPTIONS
来源:
内容长度:0
连接:保持活力
您是否将URL设置为
http://developer.permid.org
?不,我相信这来自响应标题。我已使用请求/响应更新了问题。此API似乎不支持CORS。所以你不能从角度使用它。你在任何地方设置了一个URL到http://developer.permid.org
?不,我相信这来自响应标题。我已使用请求/响应更新了问题。此API似乎不支持CORS。所以你不能从角度使用它。