0

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

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

XMLHttpRequest 无法加载 https://shop-api-3.herokuapp.com/customers?filter%5Bshop_token%5D=9e3c9769b752436ddbd27597cf946a36。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,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

4

1 回答 1

-1

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

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

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

希望这可以帮助!

于 2016-10-29T22:59:40.443 回答