복붙노트

[RUBY-ON-RAILS] 어떻게 레일 아래에 WEBrick에서 설정 액세스 제어 - 수 - 원점?

RUBY-ON-RAILS

어떻게 레일 아래에 WEBrick에서 설정 액세스 제어 - 수 - 원점?

내가 다른 도메인에서 운영됩니다 XMLHttpRequests를 통해 다른 사이트에 컨텐츠를 제공 할 수있는 작은 레일 응용 프로그램을 작성했습니다 (그들이 동일한 서버에서 실행 얻을 할 수 없습니다). 내가 액세스 요청 웹 페이지에이 자료를 허용하는 내 레일 서버 설정 액세스 제어 - 수 - 원점해야합니다 알고 있습니다.

그것은 꽤 잘 아파치와 함께이 작업을 수행하는 방법을 문서화 보인다 이것은 아마 내가 사이트를 배포하면 내가 사용하는 서버입니다. 나는 레일이 일을하는 데 사용하고 같은 단지에 WEBrick을 사용하는 희망하지만 내가 개발하고있는 동안. 레일에서 적절한 HTTP 헤더를 제공하기에 WEBrick을 구성하는 방법이 있나요?

해결법

  1. ==============================

    1.당신이 레일 2에 있다면 당신의 응용 프로그램 컨트롤러에이를 추가 할 수 있습니다.

    당신이 레일 2에 있다면 당신의 응용 프로그램 컨트롤러에이를 추가 할 수 있습니다.

    before_filter :set_access
    
    def set_access
      @response.headers["Access-Control-Allow-Origin"] = "*"
    end
    

    분명히 뭔가 좀 덜 개방에 "*"변화하는 것은 좋은 아이디어가 될 것입니다.

  2. ==============================

    2.4 레일 (http://edgeguides.rubyonrails.org/security.html#default-headers)

    4 레일 (http://edgeguides.rubyonrails.org/security.html#default-headers)

    에서 설정 / application.rb :

    config.action_dispatch.default_headers.merge!({
      'Access-Control-Allow-Origin' => '*',
      'Access-Control-Request-Method' => '*'
    })
    
  3. ==============================

    3.3.1 레일

    3.1 레일

    class ApplicationController < ActionController::Base
      protect_from_forgery
      after_filter :set_access_control_headers
    
      def set_access_control_headers
        headers['Access-Control-Allow-Origin'] = '*'
        headers['Access-Control-Request-Method'] = '*'
      end
    end
    
  4. ==============================

    4.3.1 레일 - 나는 사용자 정의 미들웨어를 대신 추가, 그래서 나를 위해 일을하지 않았다 after_filter 컨트롤러를 사용하여 :

    3.1 레일 - 나는 사용자 정의 미들웨어를 대신 추가, 그래서 나를 위해 일을하지 않았다 after_filter 컨트롤러를 사용하여 :

    에서 응용 프로그램 / 미들웨어 / cors_middleware.rb :

    # For icons to work in Firefox with CDN
    class CorsMiddleware
      def initialize(app)
        @app = app
      end
    
      def call(env)
        status, headers, body = @app.call(env)
        cors_headers = headers.merge({
          'Access-Control-Allow-Origin' => '*',
          'Access-Control-Request-Method' => '*'        
        })
        [status, cors_headers, body]
      end  
    end
    

    에서 설정 / application.rb :

    require File.join(Rails.root, "app", "middleware", "cors_middleware")
    config.middleware.insert_before ActionDispatch::Static, CorsMiddleware # Need it early in the chain to work for assets
    
  5. ==============================

    5.2.3.8 레일

    2.3.8 레일

    before_filter :allow_cross_domain_access
    def allow_cross_domain_access
      response.headers["Access-Control-Allow-Origin"] = "*"
      response.headers["Access-Control-Allow-Methods"] = "*"
    end
    
  6. ==============================

    6.경우 당신은 랙 미들웨어 보석과 같은 솔루션을 원하는 : https://github.com/cyu/rack-cors

    경우 당신은 랙 미들웨어 보석과 같은 솔루션을 원하는 : https://github.com/cyu/rack-cors

  7. from https://stackoverflow.com/questions/2535454/how-to-set-access-control-allow-origin-in-webrick-under-rails by cc-by-sa and MIT license