我的问题太奇怪了:
我有这样的表格:
<form id="my-form" method="post" action="/password_reset/update/<%= @user.perishable_token %>" charset="utf-8" autocomplete="off">
<input type="password" name="user[password]" class="required" minlength="6" />
<input type="password" name="user[password_confirmation]" class="required" equalto="#password-field" minlength="6" />
<input type="hidden" name="page" value="set" />
<input type="submit" value="Submit"/>
</form>
客户端向我的rails服务器发送ajax请求(使用jquery 1.6.1,jQuery Validation Plugin 1.8.1,jQuery Form Plugin 2.67)
$("#my-form").validate({
submitHandler: function(form) {
$(form).ajaxSubmit();
}
});
服务器端收到请求,这是问题所在。有时:
而不是获取具有预期格式的参数,如下所示
Parameters: {"user"=>{"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "page"=>"set", "id"=>"bFC7bkz6tzOF4i2KXZ"}
......我明白了:
Parameters: {"_json"=>"user%5Bpassword%5D=password&user%5Bpassword_confirmation%5D=password&page=set", "id"=>"perishable_token"}
我在很多情况下测试了表单(使用不同的浏览器/操作系统),我不可能重现这个问题。我可以在生产rails log中看到它。
所以我的问题是:
非常感谢你的帮助。
答案 0 :(得分:0)
尝试设置所需的数据类型:
$(form).ajaxSubmit({dataType=>"desirable format"});
格式可以是“xml”,“script”或“json”