我有以下代码片段,它使用 jQuery Form 插件将表单发布到服务器(在 ajax 中)。
var options = {
dataType: "json",
success: function(data) {
alert("success");
}
};
$form.ajaxSubmit(options);
表格:
<form enctype="multipart/form-data" id="name_change_form" method="post" action="/my_account/">
<div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='6c9b552aaba88b8442077e2957e69303' /></div>
<table>
<tr>
<td>
<label for="id_first_name">First name</label>:
</td>
<td>
<input name="first_name" value="Patrick" maxlength="30" type="text" id="id_first_name" size="30" />
</td>
</tr>
<tr>
<td>
<label for="id_last_name">Last name</label>:
</td>
<td>
<input name="last_name" value="Sung" maxlength="30" type="text" id="id_last_name" size="30" />
</td>
</tr>
</table>
<input type="hidden" name="form_id" value="name_change_form" />
</form>
ajax 实现工作正常。但我收到警告
资源解释为 Document,但使用 MIME 类型 application/json 传输
在 Chrome 开发者工具中。我想找出警告的原因,甚至更好的解决方法。
我改为使用$.post
,然后神奇地从那时起错误就消失了。我不知道为什么$.post
有效但无效$form.ajaxSubmit
。如果有人可以提供他们的解释,那就太好了。至少,这个问题得到了解决。下面是新代码。
var url = $form.attr("action");
$.post(
url,
$form.serialize(),
function(data) {
alert("success");
},
"json"
);