weixin_33681778 2017-04-27 01:54 采纳率: 0%
浏览 40

为什么机架不工作?

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条回答 默认 最新

  • weixin_33693070 2017-04-27 03:55
    关注

    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.

    评论

报告相同问题?