Sinatra是否支持OPTIONS HTTP动词?类似的东西:
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
答案 0 :(得分:28)
经过一些黑客攻击后,我设法使用:
before do
if request.request_method == 'OPTIONS'
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
end
修改强>
在对此问题进行了一些调查之后,我意识到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
修改强>
应该合并拉取请求。不再需要黑客了。
答案 1 :(得分:6)
是的,已经完成Sinatra Routes documentation
答案 2 :(得分:2)
不,不。如果查看GitHub上的代码,您可以看到HTTP谓词的定义位置,options
不是其中之一。
答案 3 :(得分:0)
答案是,简单,是的! (请阅读“阅读我http://www.sinatrarb.com/intro.html中的路线”