Javascript 角度+;Rails访问控制头

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

从Rails应用程序中的Angular controller向opencalais API发送$http.post时,我收到一个访问控制允许原点错误:

无法加载XMLHttpRequest。“Access Control Allow Origin”标头的值“”不等于提供的源。因此,不允许访问源“”

以下是我的Angular controller中的API调用:

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。所以你不能从角度使用它。