Я создаю контроллер в своем .Net Core API для создания файла с слепком пакета iTextSharp и отправляю файл pdf пользователю.Когда я тестирую его с помощью Swagger, потому что он реализован в проекте, он работает хорошо, но не работает, когда я хочу использовать контроллер в своем угловом приложении.
Мой контроллер C #:
[HttpPost("[Action]")]
public IActionResult CreateLicensePDF(License license) {
GenerateLicenseFIleService generateLicenseFIleService = new GenerateLicenseFIleService();
byte[] abytes = generateLicenseFIleService.Generate(license);
string fileName = license.Customer.CustomerNumber + "-" + license.Order.OrderNumber + ".pdf";
return File(abytes, "application/pdf", fileName);
}
Служба, которая вызывает API-адрес для выполнения контроллера в моем угловом приложении:
generateLicensePDF(license){
return this.http.post(`${this.config.catchApiUrl()}GenerateFile/CreateLicensePDF`,license);
}
При нажатии кнопки она выполняет эту функцию, чтобы вызвать службу
onSubmit(){
// get a license by id and it's return license's data
this.licenseInfoService.getLicenseById(1).subscribe(
r => {// call the service which download the file
this.licenseInfoService.generateLicensePDF(r).subscribe(
r => console.log("yeah"),
err => console.log(err))
}
}
Iпопробуйте многое, но ошибка всегда:
возвращается HttpErrorMessage, статус 400 с этим сообщением об ошибке
"": ["Ввод был недействительным.
или:
возвращается HttpErrorMessage, состояние равно 200 с этим сообщением об ошибке
SyntaxError: неожиданный токен% в JSON в позиции 0 в JSON.parse () в XMLHttpRequest.onLoad