Apabila menggunakan AngularJS $http untuk menghantar permintaan data eksport ke pelayan nodejs, fail excel yang diperolehi bercelaru dan respon output konsol.data adalah seperti yang ditunjukkan di bawah:
Maklumat pengepala yang dikembalikan oleh pelayan adalah seperti berikut:
Accept-Range:bytes
Connection:keep-alive
Content-Disposition:attachment; filename=%E8%A1%A5%E8%B4%B4%E8%B5%84%E6%A0%BC%E5%B7%B2%E5%AE%A1%E6%A0%B8%E4%BF%A1%E6%81%AF%E8%A1%A8.xlsx
Date:Wed, 20 Apr 2016 09:39:33 GMT
Transfer-Encoding:chunked
X-Powered-By:Express
Pengawal sudut:
$scope.export = function() {
$http({
url: "/api/exportExcel",
method: "GET"
}).then(function(response) {
var anchor = angular.element('<a/>');
anchor.attr({
href: 'data:attachment/xlsx;charset=utf-8,' + encodeURI(response.data),
target: '_blank',
download: '2016-04-20.xlsx'
})[0].click();
});
}
Pandangan sudut:
<button type="button" class="btn" ng-click="export()">导出</button>
Bagaimana untuk mendapatkan fail excel yang betul dan tersedia? Apakah kaedah pelaksanaan biasa untuk mengeksport data untuk cemerlang seperti ini? bersyukur!
Cuba gunakan $window.location = '/api/exportExcel' terus?