浏览器下载JSON结果而不是传回脚本

时间:2012-05-17 05:51:06

标签: javascript asp.net-mvc-3 file-upload

我编写了一个使用Valums fileuploader的MVC3应用程序。当用户上载文件时,服务器会传回一个JSON对象,指示成功/失败以及可能的错误消息。一些用户报告他们的浏览器要求他们采取行动,就像下载文件(保存/打开)一样,而不是将JSON传递给javascript。

我正在使用上传器作为分布式,我的C#控制器返回一个像这样的JSONResult

return JSON(new { success = true }, "application/json");

或者如果出现问题

return JSON(new { success = false, error = exception.Message });

我无法重现这一点,并且收到了IE9和Chrome用户的报告。有没有人发生这种情况,你做了什么来解决它?或者我应该在哪里开始排查?

修改 文件上传器将在onComplete事件:

上运行此文件
function(id, filename, responseJson) {
  if(responseJson.success != true) {
    alert("An error occurred: " + responseJson.error);
    return false;
  }
  return true;
}

2 个答案:

答案 0 :(得分:1)

试试这个:

return Json(new { success = true }, JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)

原来问题是IE不处理application/json内容类型。将其设置为text/html会使其正常工作,尽管它非常糟糕。