2015-11-04 77 views
0

我使用的聚合物的iron-ajax元向一个XMLHttpRequest到服务器端点:Ajax响应是文件下载

<iron-ajax 
    id="ajax" 
    method="POST" 
    url="/export/" 
    params='' 
    handle-as="json" 
    on-response="handleResponse" 
</iron-ajax> 

我兴亚/快递,服务器读取数据流这样的回应:

router.post('/export' , function*(){ 

    var file = __dirname + '/test.zip'; 
    var filename = path.basename(file); 
    var mimetype = mime.lookup(file); 

    this.set('Content-disposition', 'attachment; filename=' + filename); 
    this.set('Content-type', mimetype); 
    this.body = fs.createReadStream(file); 
}) 

如何在handleResponse()中启动下载? 理想情况下,我不想处理响应,直接启动下载。

的响应头看(如预期)是这样的:

Content-disposition: attachment; filename=test.zip 
Connection: keep-alive 
Transfer-Encoding: chunked 
Content-type: application/zip 

回答

1

如果你返回你的文件数据的字节流,你可以开始下载喜欢这里做 - >Save file Javascript with file name

uriContent = "data:application/octet-stream," + encodeURIComponent(dataFromServer); 

newWindow=window.open(uriContent, 'filename.txt');