Ruby on rails 接收json响应时不断出现“获取406不可接受错误”
我以前使用过jQuery远程函数,但在本例中遇到了问题 我有一个远程功能来检查电子邮件的唯一性,但现在我想检查用户密码,当他使用jQuery验证插件输入密码时(如果可能的话),但我经常遇到Firebug:Ruby on rails 接收json响应时不断出现“获取406不可接受错误”,ruby-on-rails,jquery,actioncontroller,Ruby On Rails,Jquery,Actioncontroller,我以前使用过jQuery远程函数,但在本例中遇到了问题 我有一个远程功能来检查电子邮件的唯一性,但现在我想检查用户密码,当他使用jQuery验证插件输入密码时(如果可能的话),但我经常遇到Firebug: 406 Not acceptable 以下是我的操作(此处有问题。编辑):-EDIT 从控制台:-编辑 以下是检查电子邮件唯一性的工作操作: def checkemail @user = User.find_by_email(params[:user][:email]) res
406 Not acceptable
以下是我的操作(此处有问题。编辑):-EDIT
从控制台:-编辑
以下是检查电子邮件唯一性的工作操作:
def checkemail
@user = User.find_by_email(params[:user][:email])
respond_to do |format|
format.json { render :json => !@user }
end
end
我的jQuery验证与远程功能-编辑
checkuniqeness jQuery的工作示例:
"user[email]": {
required: true,
email: true,
remote: {
url: "http://127.0.0.1:3000/checkemail"
}
我的错误在哪里?尝试将url更改为“”。@Frost,已尝试。不工作。在其他请求中,我没有使用json扩展。我将给你一个工作示例。在你的
检查过程中,这是你呈现的打字错误:json=>@user
?因为之前您分配的是user
局部变量,并且user
已签入条件变量,所以这不是错误。这是一个有问题的输入错误。好的,但是如果你想在json中只返回true/false,更好的选择是format.json{render:json=>(@user&&@user.valid_password?(params[:user][:password])}
,然后你就可以用这个@check标志去掉条件。
def checkemail
@user = User.find_by_email(params[:user][:email])
respond_to do |format|
format.json { render :json => !@user }
end
end
$("#edit_password").validate({
rules: {
"user[password]":{
required: true,
minlength: 6,
remote: {
url: "http://127.0.0.1:3000/checkpass",
type: "get",
data: {
email: function() { return $("#user_email").val(); }
}
},
...
})
"user[email]": {
required: true,
email: true,
remote: {
url: "http://127.0.0.1:3000/checkemail"
}