Javascript 导出到.xls适用于开发环境,但不适用于生产环境/失败-网络错误
我似乎找不到我的代码的问题,它在我的开发环境中工作得很好,但在生产环境中却没有。这不是浏览器的问题(Firefox、IE和Chrome都失败了),也不是文件大小的问题,这里的其他问题表明了这一点。我认为这可能是一个象征性的问题,因为我最初没有提供一个,但在实现它之后,我发现问题仍然存在 提示下载时,文件显示Javascript 导出到.xls适用于开发环境,但不适用于生产环境/失败-网络错误,javascript,node.js,Javascript,Node.js,我似乎找不到我的代码的问题,它在我的开发环境中工作得很好,但在生产环境中却没有。这不是浏览器的问题(Firefox、IE和Chrome都失败了),也不是文件大小的问题,这里的其他问题表明了这一点。我认为这可能是一个象征性的问题,因为我最初没有提供一个,但在实现它之后,我发现问题仍然存在 提示下载时,文件显示失败-网络错误 下面是一些代码位,从客户端开始 generateExcel( ){ this.detector.markForCheck( ); this.ap
失败-网络错误
下面是一些代码位,从客户端开始
generateExcel( ){
this.detector.markForCheck( );
this.api.post( 'invoice/excel_liquidation', { liquidation: this.list } ).subscribe( ( response: any ) => {
if( response.success ) {
this.toast.success( 'Excel correctly generated!' );
let url = response.file.url // + '?token=' + this.auth.jwt;
this.generateDownloadUrl( url, response.file.name );
this.detector.markForCheck( );
}
this.detector.markForCheck( );
}, ( error: any ) => {
this.detector.markForCheck( );
});
}
generateDownloadUrl( url: string, name: string ) {
let a = document.createElement( 'a' );
a.href = url;
a.download = name;
document.body.appendChild( a );
a.click( );
a.remove( );
}
最后是服务器端(解析和其他不必要的数据除外):
非常感谢您的帮助。在修改之前的方法后,问题得到了解决,如下所示:
generateDownloadUrl( url: string, name: string ) {
let a = document.createElement( 'a' );
a.href = url;
/*a.download = name;*/
a.target = '_blank';
document.body.appendChild( a );
a.click( );
a.remove( );
}
简而言之,尝试在新选项卡中打开.xls文件而不是直接下载该文件是解决此问题的一种方法。这是在哪里定义的?app.path.storageIt的定义如下:
path:{storage:path.join(uuu dirname,../../','app/storage/')},
,您是否在服务器上检查过,该路径指向正确的位置,并且该位置可由应用程序写入?也许在某个地方把它记录下来,这样你就可以看到路径了?它是在服务器端正确生成的,因为我可以访问和查看FileZilla上的文件。至少这是我的理解。知道=)非常有帮助
generateDownloadUrl( url: string, name: string ) {
let a = document.createElement( 'a' );
a.href = url;
/*a.download = name;*/
a.target = '_blank';
document.body.appendChild( a );
a.click( );
a.remove( );
}