我正在使用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
块中的其他字符不同。我想知道他们是指options
本身还是背后的原因?我不确定它们是否应该相同。
options
块主要用作Preflight request,它在实际发出实际的http请求之前,告诉客户端允许哪些头/方法。
关于before
块,我相信您只需要设置允许原点。除非您对不同的端点使用不同的配置。