在不同的子域上,从Backbone应用程序到Rails应用程序进行POST、PUT和DELETE的最佳方式是什么?
我试过用Backbone从Rails应用程序中获取一些数据,它工作正常。我试过用Backbone将新内容保存到Rails应用程序中。
我在PUT(更新数据库中创建的模型)方面真实的问题。我不知道为什么,但是当我在我的 Backbone.js 应用程序中这样做的时候:(book.save:)
而这本书是一个已经存在于数据库中的模型;它不是向Rails应用程序发送PUT请求,而是发送OPTIONS请求,并且不包含数据。
理想情况下,我希望从Backbone应用程序向Rails应用程序发送PUT请求,这样我就可以在Rails应用程序中执行以下操作:
帐簿.update_attributes参数[:book]
Rails应用程序和Backbone应用程序位于同一顶级域的不同子域中。
1条答案
按热度按时间pcww981p1#
对于不是post或get的方法,客户端将发送OPTIONS请求来确定允许跨域的内容。您需要两件事。您需要一种方法来响应正确的响应头,以告诉客户端跨域是可以的。我在ApplicationController中创建了after_filter,因为我的跨域需求是系统范围的。
接下来,您需要在您的routes.rb中处理选项请求
以及处理请求的控制器(对我来说是ApplicationController)