我正在使用Express,我需要从服务器下载文件。我可以使用<a href="mylink"></a>
轻松下载它,但有一些查询参数,我想隐藏用户。
所以现在我正在尝试使用jQuery.ajax向Express(srv1)发送请求,然后使用我的参数将请求发送到另一个服务器(srv2)。服务器使用“Content-disposition”标头和文件数据回复我。没关系。还有一个问题 - 我可以使用该文件并将其回复到我最初的ajax请求吗?
问题是,即使res.download()
文件(已经在我的srv1上)也不起作用。 Express设置了标题,但没有文件提示下载。也许ajax中有一个探测器?
答案 0 :(得分:5)
您无法使浏览器使用javascript ajax请求执行文件下载(这是一个安全限制)。有关详细信息,请参阅https://stackoverflow.com/a/9970672/266795。您需要一个普通的浏览器GET或POST请求才能获得正确的文件保存对话框。