如何响应 rails-api 中的 OPTIONS HTTP 方法?
Posted
技术标签:
【中文标题】如何响应 rails-api 中的 OPTIONS HTTP 方法?【英文标题】:How to respond to OPTIONS HTTP Method in rails-api? 【发布时间】:2013-11-29 12:36:31 【问题描述】:我正在使用 rails-api 构建一个公共的 json api。
我想响应 OPTIONS HTTP 方法以利用跨域资源共享。
http://www.w3.org/TR/cors/
我正在这样做:
headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
它可以工作,但某些 URL 不支持所有 HTTP 方法。在这些情况下,我在撒谎。
我不想为每个 URL 配置 Access-Control-Allow-Methods。
有没有办法根据我的路线响应 Access-Control-Allow-Methods?
【问题讨论】:
【参考方案1】:查看 rack-cors gem,它允许您像路由文件一样配置它
https://github.com/cyu/rack-cors
【讨论】:
rack-cors 非常好,但它不是基于我的路线。如果我的路线以 200 响应 GET /list 并以 404 响应 POST /list,那么我希望它以 Access-Control-Allow-Method: GET, OPTIONS only 响应 OPTIONS。 Rack-cors 可以做到这一点,但我必须进行配置。我不想再次配置它,因为我已经在路由文件上进行了配置。不过我会接受你的回答,因为我认为现在这样更好。以上是关于如何响应 rails-api 中的 OPTIONS HTTP 方法?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Rails-Api + Vue.js + Cloudinary + Attachinary 上传图片?
为RSpec和Rails-API设置Content-Type标头
覆盖 NancyFX / Visual Studio Web 服务器中的 OPTIONS 响应