Как настроить Sinatra таким образом, чтобы статические файлы в общей папке возвращались с ответом Access-Control-Allow-Origin = "*"?
Посмотрите на этот вопрос здесь: ОПЦИИ Sinatra HTTP Verb . Теперь он реализован в sinatra, поэтому вам не нужно взламывать его.
Если это не поможет, взгляните на это сообщение в блоге: Обмен ресурсами между источниками с Синатрой и его репо на github: sinatra-corss_origin
Хотя самый простой способ сделать это должен работать, просто добавив это:
response['Access-Control-Allow-Origin'] = 'http://whatever.org'
перед возвращаемым значением в вашем маршруте.
get '/foo' do headers 'Access-Control-Allow-Origin' => 'http://example.com' 'hello world' end
Есть также хорошее расширение для обмена между источниками:
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
Я сделал это на стороне сервера, мой файл назывался server.rb:
before do content_type :json headers 'Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST'] end