Sinatra가 OPTIONS HTTP 동사를 지원합니까? 예 :Sinatra 옵션 HTTP 동사
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
Sinatra가 OPTIONS HTTP 동사를 지원합니까? 예 :Sinatra 옵션 HTTP 동사
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
해킹 조금 나는 그것을 사용하여 작업 얻을 관리 후 :
before do
if request.request_method == 'OPTIONS'
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
end
편집 : 일부는 더이 문제에 대한 둘러보고, 나는 PULL 요청이 최대 인 것을 알게되면
OPTIONS
동사 (https://github.com/sinatra/sinatra/pull/129) 추가를위한 GitHub. 나는 해결책을 가져다가 다음 코드를 사용하여 그것을 해킹 :
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
편집 : 풀 요청을 병합한다
. 해킹이 더 이상 필요하지 않습니다.
아니요. GitHub의 코드를 보면 HTTP 동사가 정의 된 곳을 볼 수 있으며 options
은 그 중 하나가 아닙니다.
어떻게 추가 할 수 있습니까? –
@KevinSylvestre Sinatra :: Base (Jergason이 준 링크 참조)에서 기존 경로 동사가 클래스 메소드로 구현되었다고 가정하면 자신 만 정의 할 수 있습니다. def Sinatra :: Base.options (path , opts = {}, &bk); route 'OPTIONS', path, opts, bk end' (테스트되지 않음) – Phrogz
@Phrogz 고마워요! 그 발췌 문장은 패치하는 방법을 알아내는 데 도움이되었습니다. 업데이트 된 답변보기 –
예, 이미 않는 그 대답은 Sinatra Routes documentation
, 간단하게, 그래! (읽은 경로의 루트 아래에서 http://www.sinatrarb.com/intro.html)
[내 대답] (http://stackoverflow.com/a/10195704/316700)을 확인하십시오. 이제 Sinatra는 'options' _method_ out-of-the-box를 구현합니다. – fguillen