使用$('.ajax_form')的奇怪行为.ajaxForm();

c.s*_*kun 3 jquery ajaxform

这是我第一次在类如下的类上应用jquery ajaxForm

<form class="ajax_form"...><input type="text" name="q" /><input type="submit" /></form>
<form class="ajax_form"...><input type="text" name="q" /><input type="submit" /></form>

<script>
$('.ajax_form').ajaxForm({
  dataType: 'json',
  error: ajaxErrorHandler,
  success: function(response) { // do some ui update .. }
});
</script>
Run Code Online (Sandbox Code Playgroud)

现在Ajax调用完成后,我总是进入错误部分,尽管firebug没有报告任何错误响应,不知道我做错了什么.

小智 11

在这种情况下,这可能或不合适,但我会提供它,因为当我在寻找类似问题的答案时,它对我有用.如果您在Firefox中提交带有文件上传的"multipart/form-data"表单,jquery.form将使用iframe提交表单.如果返回数据的Content-Type是text/plain,那么iframe会将结果文本包装在<pre>标签中,这将标记jquery json解析器并给你一个解析器错误,即使Firebug显示响应甚至正确的json .

在我弄明白之前,这让我头疼不已(在这个帖子的帮助下: http://www.extjs.com/forum/archive/index.php/t-17248.html).

我的答案是确保响应Content-Type是"text/html"(这是违反直觉的,至少对我而言).