首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IE试图在ASP中下载JSON。3

IE试图在ASP中下载JSON。3
EN

Stack Overflow用户
提问于 2011-12-21 15:11:23
回答 4查看 8.2K关注 0票数 12

我试图从我的行动返回Json,然后IE试图下载它并显示给我保存对话框。我在Firefox上测试了它,在那里它运行得很好。

代码语言:javascript
运行
复制
return Json(new { success = false, message = ex.Message }, "application/json");

这种行为的原因是什么,我如何解决这个问题?

之后,在Javascript部分中,我尝试这样做

代码语言:javascript
运行
复制
 if (responseJSON.success == false) {
                        alert(responseJSON.message);
                        cancel();
                    }

但无论如何,我都没有表现出警觉。它给我带来了保存对话框。

我试图用"application/json"更改"text/plain",然后保存对话框消失了,但是我还不能看到警报。我遗漏了什么?

编辑:

这是我完整的Javascript,我使用(前Ajaxupload)上传图像。

代码语言:javascript
运行
复制
 var uploader = new qq.FileUploader({
                element: document.getElementById("image-upload"),
                action: '/Home/ImageUpload',
                allowedExtensions: ['jpg', 'png', 'gif'],
                sizeLimlit: 2048,onComplete: function (id, fileName, responseJSON) {
                    if (responseJSON.success == false) {
                        alert(responseJSON.message);
                        cancel();
                    }
                    else {
                         alert("success");
                          //some code here
                        }
                     }
                   });

我在其他部分使用alert("success");进行了测试,并将json转发为"text/plain",之后我看到了警报。但在那个时候responseJSON.success != false对我来说。你对此有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-21 15:43:59

我用这个伎俩解决了这个问题

代码语言:javascript
运行
复制
return Json(new { success = false, message = ex.Message }, "text/html");

现在起作用了。但是,我能解释为什么它与text/html一起工作,而不适用于application/json和text/平原。首先是下载JSON,其次是返回JSON字段的未定义属性。

票数 17
EN

Stack Overflow用户

发布于 2012-09-22 14:35:46

当使用使用iframe进行IE上传的上传插件(在9.0上测试)时,就会出现这个问题。

IE设置头Accept: text/html, , application/xhtml+xml, */*,所以当你用Content-type: application/json回复时,它假设它是文件(或者至少这是我在网上能找到的唯一解释)。

因此,要避免这种情况,需要设置Content-type: text/htmlContent-type: text/plain

我建议使用ActionFilter实现这一点;与其手动更改内容类型,不如检测IE和多部分POST,并相应地更改内容类型。

票数 8
EN

Stack Overflow用户

发布于 2011-12-21 15:14:42

可能您没有为您的json内容设置正确的mime类型(对于IE,尝试文本/纯文本)

请参阅:What problems may using the MIME type application/json cause?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8591998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档