Why doesn't work rack-cors?

风格不统一 提交于 2021-01-28 09:16:02

问题


config/application.rb

require_relative 'boot'
require 'rails/all'
Bundler.require(*Rails.groups)

module MyApp
 class Application < Rails::Application
  config.middleware.insert_before ActionDispatch::Static, Rack::Cors do
  allow do
    origins '*'
    resource '*', :headers => :any, :methods => [:get, :post, :options, :patch, :delete]
      end
    end
  end
end

Gemfile

gem 'rack-cors', :require => 'rack-cors'

another gems…

bundle exec rake middleware

use Rack::Cors

another middleware…

This is an error shown console log

XMLHttpRequest cannot load https://example.com. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 405.

What should i do??


回答1:


Try to change your code into like this. I have tried in my rails 5 only add below lines will work. Then try to restart the server.

module YourApp
  class Application < Rails::Application
    # Rails 5

    config.middleware.insert_before 0, Rack::Cors do
      allow do
        origins '*'
        resource '*', :headers => :any, :methods => [:get, :post, :options]
      end
    end
  end
end

I hope it works.



来源:https://stackoverflow.com/questions/43647388/why-doesnt-work-rack-cors

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!