2016-02-03 15 views
24

Có sự cố máy chủ với ứng dụng trong Rails 5.0.0.beta2 cố gắng sử dụng ActionCable.Yêu cầu xuất xứ không được phép: http: // localhost: 3001 khi sử dụng Rails5 và ActionCable

Sử dụng máy chủ cục bộ: 3000 hoạt động tốt, vì đó là những gì hầu hết các ActionCable mặc định. Nhưng nếu tôi cố gắng để chạy các máy chủ ray trên cổng 3001, nó mang lại cho tôi Request origin not allowed: http://localhost:3001

Các tài liệu ActionCable đề cập đến sử dụng một cái gì đó giống như ActionCable.server.config.allowed_request_origins = ['http://localhost:3001'] mà làm việc cho tôi nếu tôi đặt nó trong config.ru

Nhưng điều đó có vẻ như một thực sự nơi kỳ lạ để đặt nó. Tôi cảm thấy như nó sẽ có thể đi trong một tập tin khởi tạo, hoặc tập tin cấu hình môi trường development.rb của tôi.

Để chứng minh thêm quan điểm của mình là nên được phép đi vào đó, cài đặt ActionCable.server.config.disable_request_forgery_protection = true hoạt động để bỏ qua nguồn gốc yêu cầu, ngay cả khi tôi đưa nó vào trong development.rb.

Tại sao ActionCable.server.config.disable_request_forgery_protection hoạt động trong development.rb, nhưng ActionCable.server.config.allowed_request_origins thì không (nhưng hoạt động trong config.ru)?

Không phải vấn đề cấp bách vì tôi có một số tùy chọn để làm việc xung quanh. Tôi chỉ muốn biết nếu tôi thiếu một cái gì đó rõ ràng về cách tôi tưởng tượng điều này sẽ được làm việc.

Trả lời

39

Bạn có thể đặt Rails.application.config.action_cable.allowed_request_origins = ['http://localhost:3001'] trong development.rb bạn

Xem https://github.com/rails/rails/tree/master/actioncable#allowed-request-origins để biết thêm thông tin

+0

Cảm ơn. Họ dường như đã cập nhật 4 ngày sau câu hỏi của tôi :-P Nhưng tôi sẽ không nhìn thấy nó có bạn không trả lời ở đây! – daybreaker

+3

cố định cùng một vấn đề với Rails 5 RC1 cho tôi, cảm ơn! –

Các vấn đề liên quan