Unterstützt Sinatra das HTTP-Verb OPTIONS? Etwas wie:Sinatra OPTIONEN HTTP Verb
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
Unterstützt Sinatra das HTTP-Verb OPTIONS? Etwas wie:Sinatra OPTIONEN HTTP Verb
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
Nach einem bisschen Hacking ich es arbeitet mit bekommen verwaltet:
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:
Nach etwas mehr umsah zu diesem Thema, ich erkennen, dass eine Pull-Anforderung bis auf ist GitHub für das Hinzufügen des OPTIONS
Verbs (https://github.com/sinatra/sinatra/pull/129). Ich habe die Lösung und hackte sie die folgenden Schnipsel in Verwendung:
configure do
class << Sinatra::Base
def options(path, opts={}, &block)
route 'OPTIONS', path, opts, &block
end
end
Sinatra::Delegator.delegate :options
end
Jetzt kann ich einfach nutzen:
options '/' do
...
end
Edit:
Die Pull-Anforderung zusammengeführt werden soll. Keine Notwendigkeit mehr für den Hack.
Nein, tut es nicht. Wenn Sie sich den Code auf GitHub ansehen, können Sie sehen, wo die HTTP-Verben definiert sind, und options
ist keiner von ihnen.
Wie kann ich es dann hinzufügen? –
@KevinSylvestre Angesichts der Tatsache, dass die existierenden Routenverben als Klassenmethoden auf Sinatra :: Base implementiert sind (siehe den Link, den Jergason gab), sollten Sie nur in der Lage sein, Ihre eigenen zu definieren: 'def Sinatra :: Base.options (Pfad , opts = {}, &bk); route 'OPTIONS', pfad, opts, & bk end' (ungetestet) – Phrogz
@Phrogz Danke! Dieses Schnipsel hat mir geholfen herauszufinden, wie man es patchen kann. Siehe meine aktualisierte Antwort. –
Ja, schon hat es Sinatra Routes documentation
die Antwort ist einfach, ja! (siehe unter Routen in der Lies mich http://www.sinatrarb.com/intro.html)
Wenn Sie Lies dies, bitte überprüfe [meine Antwort] (http://stackoverflow.com/a/10195704/316700), nun implementiert Sinatra die 'options' _method_ out-of-the-box. – fguillen