Синатра ОПЦИИ HTTP Глагол - PullRequest
14 голосов
/ 04 декабря 2010

Sinatra поддерживает HTTP-глагол OPTIONS? Что-то вроде:

options '/' do
  response.headers["Access-Control-Allow-Origin"] = "*"
  response.headers["Access-Control-Allow-Methods"] = "POST"

  halt 200
end

Ответы [ 4 ]

28 голосов
/ 04 декабря 2010

После небольшого взлома мне удалось заставить его работать, используя:

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:

Запрос на включение должен быть объединен. Больше не нужно для взлома.

6 голосов
/ 17 апреля 2012

Да, уже делает это Документация по Sinatra Routes

2 голосов
/ 04 декабря 2010

Нет, это не так.Если вы посмотрите на код GitHub , вы увидите, где определены HTTP-глаголы, и options не является одним из них.

0 голосов
/ 11 ноября 2013

ответ, просто да!(посмотрите под Маршрутами в прочтении мной http://www.sinatrarb.com/intro.html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...