Rails API后端

时间:2016-10-29 22:32:18

标签: javascript ruby-on-rails json-api jsonapi-resources

我在Rails中有一个jsonapi-resources后端api。我可以使用curl以及Python来请求数据。

当我尝试将jQuery用于请求时,我在浏览器中收到以下错误:

  

XMLHttpRequest无法加载   https://shop-api-3.herokuapp.com/customers?filter%5Bshop_token%5D=9e3c9769b752436ddbd27597cf946a36。   对预检请求的响应未通过访问控制检查:否   请求中存在“Access-Control-Allow-Origin”标头   资源。因此不允许原点'null'访问。响应   有HTTP状态代码404。

所以我将其添加到config/environments/production.rb

  config.action_dispatch.default_headers = {
      'Access-Control-Allow-Headers' => 'Origin, X-Requested-With, Content-Type, Accept, Authorization',
      'Access-Control-Allow-Origin' => '*',
      'Access-Control-Request-Method' => '*',
      'X-Frame-Options' => 'ALLOWALL'
    }

但是,我仍然遇到同样的错误。我错过了什么?

FWIW,这是我的curl命令:

curl -i -H "Accept: application/vnd.api+json" "https://app.herokuapp.com/retentions?filter%5Bshop_token%

5D = ABC123"

使用Rails 4

1 个答案:

答案 0 :(得分:-1)

我一个月前也遇到过同样的问题,在阅读了很多博客后,我解决了......

所以看起来你正在使用jquery(来自浏览器)在另一台服务器上请求一个api令牌,而不是这样做,从你的服务器请求它并且你将它传递给客户端然后你可以做任何事情你想要的,这应该可以解决问题。

我对这个CORS的理解是你不能做浏览器到服务器,你必须从服务器(你的域)到服务器(你正在访问的api)。

希望这有帮助!