Après un peu de piratage j'ai réussi à le faire fonctionner à l'aide:
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:
Après un peu plus regardant autour de cette question, je réalise qu'une demande de PULL est sur GitHub pour l'ajout du verbe OPTIONS
(https://github.com/sinatra/sinatra/pull/129). Je pris la solution et piraté en utilisant l'extrait suivant:
configure do
class << Sinatra::Base
def options(path, opts={}, &block)
route 'OPTIONS', path, opts, &block
end
end
Sinatra::Delegator.delegate :options
end
Maintenant, je peux simplement utiliser:
options '/' do
...
end
Edit:
La demande de traction doit être fusionnée. Plus besoin de pirater.
Si vous lisez ceci, s'il vous plaît vérifier [ma réponse] (http://stackoverflow.com/a/10195704/316700), maintenant Sinatra implémente le 'options' _method_ out-of-the-box. – fguillen