【发布时间】:2012-03-12 20:29:00
【问题描述】:
我有一个 Backbone.js/Rails 应用程序,我正在尝试通过 Backbone model.save() 创建一个新对象。
服务器返回一个302 moved,但检查rails控制器,创建对象存在,我可以导航到索引,所以路由正确。
我尝试用常规 jquery .ajax 函数替换主干.js,并且都返回 302,因为我最初认为错误在主干中,但我认为这表明错误实际上在铁轨。
请求负载/参数非常简单
{"user_id":130,"message_text":"这是 302","authenticity_token":"GxN8nPf5YwS2j2HhWZxWiKej3Y72Vb5IQZ98u5Nl2gs="}主干保存方法是
var user_message = new Myapp.Models.UserMessage({ 用户ID:用户ID, message_text: $('input[name="message"]',this.el).val() }); user_message.save({ 成功:功能(响应){ 新消息({消息:response.message}); }, 错误:函数(){ 新错误({消息:“添加消息”}); } });【问题讨论】:
-
正如您所指出的,“302”响应与骨干无关。您应该从控制器发布 rails 代码,以及任何相关的路由配置,这些配置会从控制器执行“重定向”。看起来您有导致此问题的授权/身份验证代码。
-
天哪,德里克!!你到底是怎么发现这是一个授权错误。我一直在看这个 10 个小时,并没有弄明白。你说得对。请将此作为答案发布,我会给你胜利!
-
:) 很高兴我能帮上忙。正是 302 响应和响应中的authenticity_token 的组合让我想到了授权/身份验证。
标签: ruby-on-rails backbone.js http-status-code-302