Làm cách nào để thiết lập Sinatra sao cho các tệp tĩnh trong thư mục công khai được trả về bằng phản hồi Access-Control-Allow-Origin = "*"?Sinatra access-control-allow-origin cho thư mục công cộng sinatra
Trả lời
Hãy xem câu hỏi này tại đây: Sinatra OPTIONS HTTP Verb. Nó được thực hiện trong sinatra bây giờ, do đó bạn không cần phải hack xung quanh nó.
Nếu điều đó không giúp hãy nhìn vào bài đăng blog: Cross Origin Resource Sharing with Sinatra, và repo tại github: sinatra-corss_origin
Mặc dù cách đơn giản nhất để làm điều đó nên làm việc chỉ bằng cách thêm này:
response['Access-Control-Allow-Origin'] = 'http://whatever.org'
trước giá trị trả lại trong tuyến đường của bạn.
get '/foo' do
headers 'Access-Control-Allow-Origin' => 'http://example.com'
'hello world'
end
Ngoài ra còn có một phần mở rộng thoải mái để chia sẻ nguồn gốc chéo:
https://github.com/britg/sinatra-cross_origin
require 'sinatra'
require 'sinatra/cross_origin'
# To enable cross origin requests for all routes:
configure do
enable :cross_origin
end
# To only enable cross origin requests for certain routes:
get '/cross_origin' do
cross_origin
"This is available to cross-origin javascripts"
end
Đá quý có hoạt động không? Tôi đã thử, và tôi không thể nhận được tiêu đề 'Access-Control-Allow-Origin' để hiển thị cho đến khi tôi thêm nó một cách rõ ràng trong phương thức phản hồi của tôi như trong câu trả lời của @daddz – sameers
Tôi đã làm điều này trên một phía máy chủ, tập tin của tôi được gọi server.rb:
before do
content_type :json
headers 'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST']
end
Cảm ơn bạn. Tôi đã nhận được chỉ với bit đầu tiên, 'tiêu đề 'Access-Control-Allow-Origin" => "*" ', để cho phép một yêu cầu GET. Không thử động từ khác. –
- 1. Sinatra + Bundler?
- 2. Sinatra vs. Rails
- 3. Máy chủ Sinatra đẩy?
- 4. Sinatra Variable Phạm vi
- 5. Rails trong thư mục công cộng
- 6. Đặt content_type mặc định cho Sinatra
- 7. Sinatra và http PUT
- 8. Sinatra - API - Xác thực
- 9. Điều kiện Sinatra
- 10. Python tương đương với Sinatra
- 11. Thêm Bootstrap Less vào Sinatra
- 12. Làm thế nào để chạy công việc Sinatra trong nền?
- 13. Sinatra và dấu chấm hỏi
- 14. Chạy Sinatra trên cổng 80
- 15. Sinatra trực tuyến với Puma?
- 16. Tải lên tệp bằng Sinatra
- 17. Ít treo ứng dụng Sinatra
- 18. Erb với Sinatra trong ruby
- 19. Sinatra :: Base.condition thực sự làm gì?
- 20. API Sinatra và Grape cùng nhau?
- 21. Định tuyến trang tĩnh trong Sinatra (Ruby)
- 22. Cài đặt bảo vệ Sinatra và Rack
- 23. Nhiều thư mục công cộng, cài đặt đường ray đơn
- 24. Một khung công tác đơn giản cho Google App Engine (như Sinatra)?
- 25. Thư mục công cộng Meteor không hoạt động
- 26. Cách bật SSL cho ứng dụng Sinatra độc lập?
- 27. Tham số bắt buộc và tùy chọn cho tuyến Sinatra
- 28. Gửi đối số cho ứng dụng sinatra mới
- 29. Xác thực cho ứng dụng API Sinatra REST
- 30. Sử dụng Sidekiq, Capistrano, Sinatra cho triển khai
Tôi không sử dụng các tiêu đề 'phản hồi' nhưng' tiêu đề': '(" Access-Control-Allow-Origin "=>" * ")' – fguillen
Rất cám ơn vì cách đơn giản nhất –