Sinatra, OPTIONS HTTP fiilini destekliyor mu? Şunlar gibi:Sinatra OPSİYONLARI HTTP Verb
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
Sinatra, OPTIONS HTTP fiilini destekliyor mu? Şunlar gibi:Sinatra OPSİYONLARI HTTP Verb
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
hack biraz bunu kullanarak çalışma başardı sonra:
before do
if request.request_method == 'OPTIONS'
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
end
Düzenleme: Biraz daha bu konuda etrafa, bir PULL isteği üzerine olduğunu fark sonra
OPTIONS
fiil (https://github.com/sinatra/sinatra/pull/129) ilavesi için GitHub. Ben çözümü aldı ve şu pasajı kullanarak bunu kesmek:
configure do
class << Sinatra::Base
def options(path, opts={}, &block)
route 'OPTIONS', path, opts, &block
end
end
Sinatra::Delegator.delegate :options
end
Şimdi basitçe kullanabilirsiniz:
options '/' do
...
end
Düzenleme: çekme isteği birleşti edilmelidir
. Hack'e gerek yok.
Hayır öyle değil. GitHub koduna bakarsanız, HTTP fiillerinin nerede tanımlandığını görebilir ve options
bunlardan biri değildir.
Nasıl ekleyebilirim? –
@KevinSylvestre Mevcut rota fiillerinin Sinatra :: Base'de (Jergason'un verdiği bağlantıya bakınız) sınıf yöntemleri olarak uygulandığı göz önüne alındığında, sadece kendi başınızı tanımlayabilmeniz gerekir: 'def Sinatra :: Base.options (yol , opts = {}, &bk); rotası 'OPTIONS', yol, opts, & bk end '(test edilmedi) – Phrogz
@Phrogz Teşekkürler! Bu snippet bana nasıl yama yapılacağını bulmakta bana yardımcı oldu. Güncellenmiş cevabımı görün –
Evet, zaten yapar o cevap Sinatra Routes documentation
, basitçe, evet! (bana okunan Routes kısmına bakın http://www.sinatrarb.com/intro.html)
bunu okuyor, lütfen [cevap] (http://stackoverflow.com/a/10195704/316700) 'ı kontrol edin, şimdi Sinatra 'options' _method_-out-of-the-box'ı uygular. – fguillen