Javascript 从Express后端下载.csv到Angularjs
我见过同样的问题 ,但是,解决方案在我的情况下不起作用,并且输入使用的代码Javascript 从Express后端下载.csv到Angularjs,javascript,node.js,angularjs,csv,express,Javascript,Node.js,Angularjs,Csv,Express,我见过同样的问题 ,但是,解决方案在我的情况下不起作用,并且输入使用的代码 $('<form action="'+ url +'" method="'+ ('post') +'">'+inputs+'</form>') .appendTo('body').submit().remove(); app.js app.put('/download', function(req,res){ console.log(req.body.file)
$('<form action="'+ url +'" method="'+ ('post') +'">'+inputs+'</form>')
.appendTo('body').submit().remove();
app.js
app.put('/download', function(req,res){
console.log(req.body.file)
res.download(__dirname +'/'+ 'req.body.file, function(err){
if(err){console.log(err)}
})
})
My controller.js将原始文件输出作为数据返回,而不是从页面开始下载。在angular中启动此文件下载时是否缺少某些内容?
任何帮助都将不胜感激。由于我的页面上没有jQuery,您完全为我指明了正确的方向
以下是我添加到controllers.js中以代替$http.put()的已完成代码:
$(''+'')
.appendTo('body').submit().remove();
再次感谢您的帮助。
未定义Reference$
表示它在执行时找不到jQuery。这是您唯一的错误吗?是的,这是我唯一的错误-当我将jQuery库添加到我的页面时,我在触发下载时只返回一个空白页面。您从中获得帮助的答案的形式中有一个操作。提交表单时重定向操作。在“提交”按钮的单击处理程序中,您必须将e
传递给处理程序的回调函数,并在回调函数中使用e.preventDefault()
方法。这完全有帮助。虽然我不需要e.preventDefault(),但我在下面发布了答案。您找到答案真是太棒了。。。很乐意帮忙!
app.put('/download', function(req,res){
console.log(req.body.file)
res.download(__dirname +'/'+ 'req.body.file, function(err){
if(err){console.log(err)}
})
$('<form action="'+ "/download" +'" method="'+ ('post') +'">'+'<input type="hidden" name="file" value="'+$scope.inputInfo.name.$modelValue+'"'+'/></form>')
.appendTo('body').submit().remove();