我正在使用 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
它工作正常,但我想了解更多细节。 options
Access-Control-Allow-Headers
与 before
block 中的其他选项不同。
我想知道他们是否引用了 options
本身或者背后有什么原因?我不确定它们是否应该相同。
最佳答案
options
block 主要用作 Preflight request 。它在实际发出实际的 HTTP 请求之前告诉客户端允许使用哪些 header /方法。
对于before
block ,我相信你只需要设置Allow Origin
,除非你对不同的端点使用不同的配置。
关于ruby - Sinatra 中的 Cors 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59599530/