.NET의 xlsx
일부 사용자 입력을 기반으로 파일을 생성하고 있습니다 express
. 정보는 post
요청을 통해 제출되며을 통해 파일의 내용을 반환하고 싶었습니다 res.download(...)
.
그렇게하면 응답 data
필드에 "쓰레기"가 표시됩니다 ajax
.
이 솔루션을 사용하여 다운로드를 요청 했지만 콘텐츠는 여전히 "쓰레기"입니다.
이것은 내 각도 컨트롤러입니다.
$ scope.generateSoldGoodsReport = function () { reportService.generateSoldGoodsReport ({ startDate : $ scope.startDate, endDate : $ scope.endDate }) .then (function (report) { var blob = new Blob ([report], {type : 'application / xlsx'}); $ scope.url = (window.URL || window.webkitURL) .createObjectURL (blob); }) }
내 서비스는 다음과 같습니다.
generateSoldGoodsReport : function (dates) { var deferred = $ q.defer () $ http.post ( '/ api / secure / generateSoldGoodsReport', 날짜) .then (function (response) { deferred.resolve (response.data) }) deferred.promise 반환 }
내 서버 측 코드는 다음과 같습니다.
sendFileResponse = function (res) { return function (err, fileDetails) { if (err) { res.json ({ error : 1, message : err.message, details : err.errors }) } else { res.download (fileDetails .path + '/'+ fileDetails.fileName) } } }
결국 나는 post
요청에서 보고서를 생성하고 응답이 클라이언트에 전송 될 때 get
생성 된 보고서가 저장된 미리 정의 된 위치에 요청을하는 솔루션을 사용하게 되었습니다. 하나 대신 두 개의 요청을 사용하기 때문에이 솔루션이 마음에 들지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다