在致力于使我们的网站对 HTML 5 友好的项目时,我们渴望接受跨域请求的新方法(不再通过隐藏的 iframe 发帖!!!)。使用 Access Control我们开始设置一些测试来验证各种浏览器的行为。
当前的 Rails RESTful 架构依赖于四个 HTTP 动词:GET、POST、PUT、DELETE。但是在访问控制规范中,它规定非简单方法(PUT、DELETE)需要使用 HTTP 动词 OPTIONS 的飞行前请求。此外,在测试期间,我们还发现 Firefox 3.5.8 的飞行前 POST 请求。
我的问题是这样的。有没有人知道 Rails 框架的任何项目都在努力解决这个问题?如果不是,关于支持 OPTIONS 方法的最佳策略有什么意见,因为它必须支持所有 POST、PUT、DELETE 方法的路由?
最佳答案
几天前我发布了一个通过机架中间件实现 CORS 支持的 Gem:
http://github.com/cyu/rack-cors
关于预检 CORS 请求,我无法让预检请求在 Chrome 中工作(通过简单的 CORS 请求工作正常)。在 Internet 上搜索表明它可能不受支持。我已在 Chrome 论坛中就此提出问题,但尚未收到回复。
关于ruby-on-rails - Rails、REST 架构和 HTML 5 : Cross domain requests with pre-flight requests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2858741/