Sinatra中的Cors定义

问题描述 投票:0回答:1

我正在使用Ruby和Sinatra构建一个简单的应用程序,并且正在寻找示例CORS配置,但我发现了这一点:

before do
  headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE, OPTIONS'
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Allow-Headers'] = 'Accept, Authorization, Origin'
end

options '*' do
  response.headers['Allow'] = 'HEAD, GET, PUT, DELETE, OPTIONS, POST'
  response.headers['Access-Control-Allow-Headers'] = 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Cache-Control, Accept'
end

它可以正常工作,但我想进一步介绍细节。optionsAccess-Control-Allow-Headersbefore块中的其他字符不同。我想知道他们是指options本身还是背后的原因?我不确定它们是否应该相同。

ruby http cors sinatra
1个回答
1
投票

options块主要用作Preflight request,它在实际发出实际的http请求之前,告诉客户端允许哪些头/方法。

关于before块,我相信您只需要设置允许原点。除非您对不同的端点使用不同的配置。

© www.soinside.com 2019 - 2024. All rights reserved.