我试图通过jQuery.Form插件提交一个带有文件字段的表单,这里是代码:
$('form').ajaxSubmit({ url: "/path",dataType: "json",contentType: "multipart/form-data" ...
服务器然后返回json作为响应。在除IE以外的所有浏览器中工作良好,IE尝试将响应作为文件下载。如果我从窗体中删除文件字段,它也可以正常工作。
我在这里和在谷歌看到各种解决方案,基本上尝试了几乎所有描述,包括通过jQuery设置表单的enctype,但它没有工作。
任何建议将非常欢迎。
解决方法
你可以简单地从控制器返回JSON作为“text / html”,然后在客户端使用JQuery.parseJSON()解析它。
控制器:
return this.Json( new { prop1 = 5,prop2 = 10 },"text/html");
客户端:
jsonResponse = $.parseJSON(response); if(jsonResponse.prop1==5) { ... }
这个解决方案一直为我工作。