После небольшого взлома мне удалось заставить его работать, используя:
before do
if request.request_method == 'OPTIONS'
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
end
Edit:
После еще одного осмотра этой проблемы я понял, что на GitHub идет запрос PULL на добавление глагола OPTIONS
(https://github.com/sinatra/sinatra/pull/129). Я принял решение и взломал его, используя следующий фрагмент кода :
configure do
class << Sinatra::Base
def options(path, opts={}, &block)
route 'OPTIONS', path, opts, &block
end
end
Sinatra::Delegator.delegate :options
end
Теперь я могу просто использовать:
options '/' do
...
end
Edit:
Запрос на включение должен быть объединен. Больше не нужно для взлома.