3

我正在使用这个插件让用户通过 ajax 上传图像。

要创建上传器并触发帖子,请使用此 jQuery 函数:

function createUploader() {
        var uploader = new qq.FileUploader({
             element: document.getElementById('file-uploader'),
             allowedExtensions: ['pdf'],
             multiple: false,
             action: '@Url.Action("AjaxUpload", "Upload")',
             onComplete: function(id, fileName, responseJSON){
               window.location.href = responseJSON.message;
            }
        });
    }

好吧,在responseJSON.message我返回文件上传(实际转换)的路径时,我正在做一个技巧window.location.href来强制浏览器显示该文件的用户下载框。

这在 FF 和 Chrome 上效果很好,但在 IE 上它说:

Do you want to open or save AjaxUpload from localhost?

如果您按打开,而不是从指定位置获取文件,您实际上会得到一个包含 responseJSON 消息的文件。

任何 jQuery 大师谁可以给我这个问题的线索?

更新:我可以确认的是问题不存在,window.location.href = responseJSON.message;因为即使我删除了这一行并alert('something')出现了同样的问题......所以不是解析onComplete,而是 IE 尝试打开 JSON 响应......

4

1 回答 1

5

尝试

return Json(new { Data = new { message = outputFilePathResponse } }, "text/html");

参考: IE 尝试在 ASP 中下载 JSON。网络 MVC 3

于 2012-05-30T20:15:53.007 回答