Add*_*ddo 5 ruby ruby-on-rails
我知道似乎有一些与此主题相关的答案,但到目前为止,没有一个对我有用。我构建了一个 Rails API 后端,前端使用 React 构建。该应用程序运行良好,但在我添加了一些功能并再次部署后,我的 CORS 开始出现问题。我添加的功能与 Redis 和 Action cable 相关。现在我收到这个错误:Access to XMLHttpRequest at 'https://myestateapi.herokuapp.com/top_apartment' from origin 'https://frozen-bastion-98066.herokuapp.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.我的设置没有改变我不知道为什么我会得到这个。在我的config/application.rb我有这个
Rails.application.config.middleware.insert_before ActionDispatch::Static, Rack::Cors do
allow do
origins '*'
resource '*',
headers: :any,
methods: %i[get post put patch delete options head]
end
end
Run Code Online (Sandbox Code Playgroud)
这段代码运行良好。什么可能导致此错误?或者有人可以推荐比 更好的宝石rack-cors吗?我会很感激得到任何人的帮助。先感谢您。
如果您使用的是 Rails 6:
首先转到您的Gemfile并取消注释gem 'rack-cors'。然后运行bundle install
之后去config/initializers文件夹。在那里,您应该找到一个名为cors.rb.
取消注释看起来像这样的代码
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins 'example.com'
resource '*',
headers: :any,
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
Run Code Online (Sandbox Code Playgroud)
改变这一行origins 'example.com'来origin '*',或者如果你的要求将是源自一个特定的原产地,然后将其设置相应地。
这对我有用。希望它也适用于您。干杯
我已经想通了。我的序列化器存在问题,因此我将其完全删除并且它起作用了。对于使用rails的用户,请运行该命令heroku run rails s以查看是否有任何障碍,该命令会记录在控制台中以便您解决。
| 归档时间: |
|
| 查看次数: |
2937 次 |
| 最近记录: |