我使用 Devise 设置了一个 rails 3.2.11 应用程序进行身份验证。
我想用ember.js作为 mvc 框架。
当我启动对 POST/users.json 路由的 ajax 调用时,我收到 406 Not Acceptable。
这是我的 ajax 调用:
urlBase : '/users'
signup : (username, email, password, passwordConfirmation) ->
$.ajax
url: "#{@.get('urlBase')}.json"
type: "POST"
dataType: "json"
data:
"user[username]": username
"user[email]": email
"user[password]": password
"user[password_confirmation]": passwordConfirmation
success: (data) ->
alert('Completed sign up process: '+ JSON.stringify(data));
@errorMsg = "Signed up successfully."
error: (jqXHR, textStatus, errorThrown) ->
alert "Error completing sign up: " + textStatus + " error: " + errorThrown
以下是日志:
Started POST "/users.json" for 127.0.0.1 at 2013-01-14 14:38:57 +0100
Processing by Devise::RegistrationsController#create as JSON
Parameters: {"user"=>{"username"=>"obo", "email"=>"obo@obo.dv", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}}
(1.3ms) begin transaction
User Exists (1.3ms) SELECT 1 AS one FROM "users" WHERE "users"."email" = 'obo@obo.dv' LIMIT 1
(0.1ms) rollback transaction
Completed 406 Not Acceptable in 311ms (ActiveRecord: 2.6ms)
我不明白为什么会这样。
最佳答案
你用的是什么版本的Devise?
上周我在意外升级到 Devise 2.2.0 后遇到了类似的问题。在该版本中进行了一些向后不兼容的更改,包括导致 DeviseController
的更改。只回复 HTML
默认情况下。您可以添加其他格式,例如 JSON
不过,这应该可以解决您的问题。
阅读有关设计更改的信息 on their changelog on Github .如果您不想这样做,请尝试降级到 Devise 2.1.2,这是我暂时所做的。
关于ajax - Ember.js 与设计轨道应用程序 : 406 Not Acceptable on sign up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14319868/