文件下载不适用于 $.get 或 $.post [重复]

Posted

技术标签:

【中文标题】文件下载不适用于 $.get 或 $.post [重复]【英文标题】:File Download doesn't work with $.get or $.post [duplicate] 【发布时间】:2014-02-17 00:04:11 【问题描述】:

我为文件下载设置了一个控制器方法,如果直接使用超链接调用该方法,它就可以工作(提示用户打开/保存文件)。但是,如果我选择通过执行显式获取请求来显式调用该方法,则尽管成功调用了该操作方法,但我不会收到文件下载提示。

    $("#id").click(function (e) 
        e.preventDefault();
        var postdata =  filename: $("#filename").text() ;
        $.get("/Test/Fix", postdata);
    );

有人知道解决方法吗?还是这是设计使然?

【问题讨论】:

***.com/questions/4545311/… @CrayonViolent,谢谢 - 这很有帮助! 【参考方案1】:

使用window.location='your desired server action path with proper parameters';

所以最终的代码如下所示:

$("#id").click(function (e) 
        e.preventDefault();
        var filename = $("#filename").text();
        window.location= "/Test/Fix?filename="+filename;
    );

希望这会有所帮助:)

【讨论】:

以上是关于文件下载不适用于 $.get 或 $.post [重复]的主要内容,如果未能解决你的问题,请参考以下文章

POST 请求适用于 Postman,但不适用于 axios 或 .fetch()

Axios POST 调用不适用于 JWT 令牌,而 GET 调用有效

JWT 身份验证适用于 $http.get 但不适用于 $http.post

CORS 中间件适用于 app.get 但不适用于 app.post

Ajax POST 不适用于 spring security csrf,但 GET 方法有效

多个 CORS 适用于 GET 但不适用于 PUT/POST 与飞行前请求 Web api 2