In my project, I'm using angular6 with Springboot backend. So what I'm trying to do is popup the save dialog using this controller java class,
@RequestMapping(value = "/getGeneratedLetter/{userId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public void genarateLetter(@PathVariable("userId") Integer userId, HttpServletResponse response) {
System.out.println(userId);
letterTypeService.genarateLetter(userId);
try {
// get Letter.docx from file path
InputStream is = new FileInputStream("Letter.docx");
response.setHeader("Content-Disposition", "attachment; filename = Letter.docx");
IOUtils.copy(is, response.getOutputStream());
response.flushBuffer();
} catch (Exception ex) {
throw new RuntimeException("IOError in " + ex);
}
}
Note: in my letterTypeService
java class the letter will be generated correctly.
And finally, I'm catching the response in my angular front-end in my component,
getGenaratedLetterTemplate(letter) {
this.data.getGenaratedLetterTemplate(letter.letterId).subscribe(response => {
this.getBasicDataFromBackend();
saveAs(response, letter.fullName + '_' + letter.letterTypeName + '.docx');
console.log(response);
}, error => {
console.log(error);
});
}
In above function responce will not catch since the result is
error massage: "OK"
It's confusing because it displayed just "OK" there are not any specific error details. Additionally in my service in frontend successfully send get request and in-network tab in chrome dev tools displays "status code:200"
Further investigation When I click the URL in my get request the letter download popup will be displayed successfully and when I click the save button the letter will download successfully.
So what could be the issue here?
from Subscribe didn't receive the response to save .docs file
No comments:
Post a Comment