Tag: 内容处置

内容处置附件是否阻止XMLHttpRequest?

我想从我写的C#web服务器执行一个png文件的JavaScript xhr请求。 这是我使用的代码 var imgUrl = "http://localhost:8085/AnImage.png?" + now; var request = new XMLHttpRequest(); request.open('GET', imgUrl, false); request.send(); // this is in a try/catch 在服务器端,我发回文件并添加一个Content-Disposition头。 我得到以下回应 在Content-Type(截图来自Firebug,按字母顺序附加)之后,我确定Content-Disposition已经附加在标题中。 结果是没有对话框被触发,我在回应中遗漏了什么? 编辑:我想在JavaScript中执行的一切有几个原因。 首先:我不想展示形象,我想把所有的东西放在幕后。 第二:在请求图像时,我希望仅将Content-Disposition添加到特定的请求上。 这些请求标有“警告”标题,其值为“附件请求” request.setRequestHeader("Warning","AttachmentRequest");

在NodeJS中下载文件

我正在编写HTML所见即所得的应用程序。 用户编辑网页后,应能够点击下载button,并通过浏览器提示保存编辑好的网页。 我不想将他们编辑的网页存储在我的服务器上,而是将文件发送到他们的本地机器上。 到目前为止,在我的应用程序中,我可以编辑模板,当用户单击下载button时获取HTML,并使用NodeJS的fs.createWriteStream方法,将HTML写入新创build的HTML文件。 但是,它会在我的服务器上创build文件,而不是提示浏览器将文件保存在“下载”文件夹中。 我使用Socket.io来告诉服务器下载HTML内容。 经过研究,我发现为了使浏览器提示用户保存下载文件,必须使用Content-Disposition:附件头来设置HTTP头。 总之,当用户在我的应用程序中单击下载button时,我该怎么做才能创build一个新文件,并直接保存在用户本地计算机而不是我的服务器上? 这是我在我的server.js文件中: io.sockets.on('connection', function(socket) { socket.on('downloadHTML', function(data) { var file = fs.createWriteStream('PearlEdit-template-Martketing.html', {flags: 'w'}) .write(data.html); }); });

内容处置:附件不触发下载对话框

我试图在NodeJS服务器上创build文件下载function时,遇到了一些意外的行为。 我有一个REST(express)API调用一些导出数据函数,它在服务器上创build一个CSV文件,并使用res.download('path/to/file')来触发下载。 响应标头包括 Content-Disposition:attachment; filename="indicators.csv" Content-Length:30125 Content-Type:text/csv; charset=UTF-8 所以一切似乎都是有序的 问题是,我从服务器获取纯文本的响应。 响应包含CSV文件包含的所有数据,但不会像我打算的那样触发浏览器的文件下载对话框。 我尝试了Chrome和FF。 这个问题依然存在。 有任何想法吗? 更新 我设法通过创build一个虚拟表单,并使用其提交动作来完成我的AJAX调用。 但这是一个丑陋的黑客,我仍然在寻找一个更优雅的解决scheme。