通过AJAX请求发送到客户端pdf文件

时间:2019-06-21 16:05:05

标签: javascript jquery node.js ajax form-data

我正在使用javascript和nodejs开发一个Web应用程序。 我必须用pdf文件响应客户端的ajax发布请求。 客户代码为:

 $.ajax({
        type: "POST",
        url: "/getSlides",
        data:{name,professor},

    }).done(function(data){

        console.log(data);

    });

因此,我希望该客户端的对象data包含pdf或从data对象获取pdf引用。 服务器端,我正在尝试按以下方式发送该邮件:

   app.post("/getSlides",function(req,res) {

    name = req.body.name;
    professor = req.body.professor;

    daoQuery.getSlides(name,professor,infoStudent[0].email,function(result){

        var form = new FormData();


          fs.readFile(result[0].slides_path,'application/pdf',function(err,file){

            if(err) throw err;

            form.append("0",file);

            console.log(file);

                res.send(form);

           });


        });


    });

daoQuery.getSlides函数在其中返回带有字段.slides_path的对象数组,这些字段是pdf在服务器上存储的路径。 我选择使用表单数据,因为它在相反的路径上工作(当我将幻灯片从客户端上传到服务器时),但是我不知道这是否是正确的工作方式。 我只需要一种从服务器接收pdf的方法。

1 个答案:

答案 0 :(得分:0)

好吧,我快速浏览了一下您的代码,我认为您没有提到名字和教授作为变量,而数据未定义。 我想应该是:

var name = req.body.name; //variable defined
var professor = req.body.professor; //variable defined


app.post("/getSlides",function(req,res) {

    var name = req.body.name; //variable defined
    var professor = req.body.professor; //variable defined

    daoQuery.getSlides(name,professor,infoStudent[0].email,function(result){

        var form = new FormData();


          fs.readFile(result[0].slides_path,'application/pdf',function(err,file){

            if(err) throw err;

            form.append("0",file);

            console.log(file);

                res.send(form);

           });


        });


    });

一步一步走,希望对您有帮助