sni*_*tko 39 ajax internet-explorer json multipartform-data jqueryform
我试图file
通过jQuery.Form插件提交一个带有字段的表单,这里是代码:
$('form').ajaxSubmit({
url: "/path",
dataType: "json",
contentType: "multipart/form-data"
...
Run Code Online (Sandbox Code Playgroud)
然后服务器返回json作为响应.在除IE之外的所有浏览器中都很好用,它试图将响应下载为文件.如果我从表单中删除文件字段,它也可以正常工作.
我在这里和谷歌已经看到了各种解决方案,基本上几乎尝试了所有描述的内容,包括enctype
通过jQuery 设置表单,但它没有用.
任何建议都会受到欢迎.
Dmi*_*rii 21
您可以简单地从控制器返回JSON作为"text/html",然后使用JQuery.parseJSON()在客户端解析它.
控制器:
return this.Json(
new
{
prop1 = 5,
prop2 = 10
},
"text/html");
Run Code Online (Sandbox Code Playgroud)
客户端:
jsonResponse = $.parseJSON(response);
if(jsonResponse.prop1==5) {
...
}
Run Code Online (Sandbox Code Playgroud)
这个解决方案一直在为我工作.
sni*_*tko 10
我还没有找到直接的解决方案,但我最终实现了以下解决方法:我dataType: "text"
在我的ajax设置中使用,然后从控制器返回明文,;
在客户端分离值并解析它们.这样IE和Forefox就不再试图下载响应了.
我没有找到任何其他方法来阻止所述行为,然后返回明文.我尝试将JSON作为纯文本返回,然后使用$ .parseJSON进行解析,但由于某些js错误,它无法正常工作.
归档时间: |
|
查看次数: |
28607 次 |
最近记录: |