Ajax发布表单和下载文件作为响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax发布表单和下载文件作为响应相关的知识,希望对你有一定的参考价值。

以下javascript用于提交要处理的webform,并返回错误或成功返回文件。下面的脚本是成功发布表单但是如何更改脚本以下载文件或显示响应。

请注意我收到的文件,但是没有下载,文件内容显示在console.log上

码:

    $("#myform").submit(function(event) {

        /* stop form from submitting normally */
        event.preventDefault();

        /* get some values from elements on the page: */
        var $form = $(this),
            term = "tesr",
            url = $form.attr('action');

        var data = $('#myform').serialize();
        /* Send the data using post */
        //var posting = $.post(url, data, function(response) { console.log("1"); });

        $.ajax({
            type: "post",
            url: url,
            data: data,
            contentType: "application/x-www-form-urlencoded",
            success: function(responseData, textStatus, jqXHR) {
                alert("data saved")
            },
            error: function(jqXHR, textStatus, errorThrown) {
            console.log(jqXHR); 
console.log(errorThrown);
            }
        })


    });

    <form name="myform" id="myform" onsubmit="return validateForm()" method="post" action="/audit_submit"> 
    <input type="submit" id="generate-string"  value="Ok">
    <div id="result">test</div>

*更新:

似乎Ajax在错误函数中接收文件

这是console.log(jqXHR)的打印输出;

{readyState:4,getResponseHeader:ƒ,getAllResponseHeaders:ƒ,setRequestHeader:ƒ,overrideMimeType:ƒ,...}

这是一个打印出来的responsedata enter image description here

以上是关于Ajax发布表单和下载文件作为响应的主要内容,如果未能解决你的问题,请参考以下文章

下载Ajax响应作为zip文件?

处理从 ajax post 下载的文件

Ajax 表单提交响应

使用 AJAX 从 PHP 文件中获取响应

AJAX 响应:数据(JSON、XML)还是 HTML 片段? [关闭]

ajax html响应中的AngularJs数据绑定