Javascript 在客户端创建的Blob不';无法使用新数据进行更新
我正在创建一个angularjs/laravel应用程序,我需要实现一个将某些数据导出到PDF的功能。PDF在后端使用生成,并作为GET请求的结果发送到angular。我还使用来处理在请求成功回调时保存文件。到目前为止,代码看起来像这样Javascript 在客户端创建的Blob不';无法使用新数据进行更新,javascript,angularjs,laravel,blob,filesaver.js,Javascript,Angularjs,Laravel,Blob,Filesaver.js,我正在创建一个angularjs/laravel应用程序,我需要实现一个将某些数据导出到PDF的功能。PDF在后端使用生成,并作为GET请求的结果发送到angular。我还使用来处理在请求成功回调时保存文件。到目前为止,代码看起来像这样 function (response) { var data = new Blob([response.data], { type: 'application/pdf' }); console.log(data); FileSave
function (response) {
var data = new Blob([response.data], { type: 'application/pdf' });
console.log(data);
FileSaver.saveAs(data, 'balance.pdf');
}
这个很好用。正确生成并保存PDF。问题是,当我更新数据时(任何CRUD操作-也正确执行),然后调用导出函数再次保存PDF时,它会与旧数据一起保存。console.log(data)行显示Blob总是以相同的大小创建的(我不知道为什么,因为我使用了new关键字,所以我在内存中创建了一个新对象,除非我弄错了)。为了获得包含更新数据的PDF,我必须手动刷新浏览器,这违背了SPA的目的,也让用户感到困惑。如果有人能提供任何关于为什么会发生这种情况的提示,我将不胜感激。提前感谢问题已解决,问题在于$http请求的配置中设置了缓存属性。我之前已经设置了它,以减少服务器上的负载,以防出现许多连续的请求 您是否检查了来自ajax的response.data或后端生成的pdf是否准确?@ARIFMAHMUDRANA pdf是否准确。正如我所说,导出的功能运行良好。我得到一个正确的PDF作为结果,这是下载。问题是,如果我更改数据并再次触发下载,PDF不会得到更新。如果我手动刷新浏览器并触发下载,那么我将获得正确的数据