我已经实现了一个从服务器上下载.doc文件的代码,作为一个服务器,我使用的是带有express的服务器端代码的node.js
function downloadresume(req, res, next)
{
var data=req.body.data;
console.log(data);
try {
var JsonData=JSON.parse(JSON.stringify(data));
console.log(JsonData);
var filename=JsonData.Id+".docx";
var file=__dirname+"/Resumes/"+filename;
fs.exists(file, function(exists) {
if (exists) {
var stats = fs.statSync(file);
var mimetype = mime.lookup(__dirname+"/Resumes/"+filename);
res.setHeader('Content-disposition', 'attachment; filename='+filename);
res.setHeader('Content-type', mimetype);
return res.download(file);
} else {
res.send([{error:'File not exists'}]);
}
});
} catch (e) {
console.log(e);
res.send(e);
}
}
和React Side代码看起来像
DownloadResume:function(id)
{
var postdata={
data:{Id:id}
};
try {
$.ajax({
url:config.APIURL+"downloadresume",
type: "POST",
data:JSON.parse(JSON.stringify(postdata)),
success: function (data, textStatus, jqXHR) {
if(data !==null && typeof data[0] !== 'undefined')
{
swal("error",data[0].error,"error");
}
},
error: function(xhr){
swal("error",'Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText,"error");
}
});
} catch (e) {
swal("Eroor",e, "error");
}
},
如果我直接从浏览器调用downloadresume然后文件下载成功,它就无法正常工作但是当我从React尝试它时它没有用,任何人都可以指导我上面提到的代码出了什么问题。
当我打电话给我时,我得到了下面提到的回复