Sinatra access-control-allow-origin for sinatra public folder

pet*_*ter 15 html sinatra

如何设置Sinatra以便使用响应Access-Control-Allow-Origin ="*"返回公用文件夹中的静态文件?

sca*_*ble 17

在这里看看这个问题:Sinatra OPTIONS HTTP Verb.它现在在sinatra中实现,所以你不必破解它.

如果这没有帮助看看这篇博文:与Sinatra的Cross Origin资源共享,以及它在github上的回购:sinatra-corss_origin

虽然最简单的方法应该只需添加:

response['Access-Control-Allow-Origin'] = 'http://whatever.org'
Run Code Online (Sandbox Code Playgroud)

在您的路线返回值之前.

  • 我没有使用`response`但是`headers`:`headers("Access-Control-Allow-Origin"=>"*")` (2认同)

Rim*_*ian 6

get '/foo' do
  headers 'Access-Control-Allow-Origin' => 'http://example.com'
  'hello world'
end
Run Code Online (Sandbox Code Playgroud)

交叉源共享还有一个很好的扩展:

https://github.com/britg/sinatra-cross_origin

require 'sinatra'
require 'sinatra/cross_origin'

# To enable cross origin requests for all routes:
configure do
  enable :cross_origin
end

# To only enable cross origin requests for certain routes:
get '/cross_origin' do
  cross_origin
  "This is available to cross-origin javascripts"
end
Run Code Online (Sandbox Code Playgroud)