Próbuję ustawić nagłówek treści w odpowiedzi na serwlet, ale pojawia się ten błąd w przeglądarce. Co powinienem zrobić?Wiele różnych nagłówków Content-Disposition odebranych z serwera w Jasperreports
zduplikowane nagłówki otrzymane od serwera
Odpowiedź z serwera zawartych zduplikowane nagłówki. Ten problem jest zazwyczaj wynikiem nieprawidłowej konfiguracji witryny lub serwera proxy. Tylko administrator witryny lub proxy może naprawić ten problem.
Błąd 349 (net :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): otrzymano wiele różnych nagłówków Content-Disposition. Jest to niedozwolone na ochronę przed atakami polegającymi na dzieleniu odpowiedzi HTTP.
Oto mój kontroler servlet:
@RequestMapping("/**/paymentOrderReport.pdf")
public class PaymentOrderReportViewController extends org.springframework.web.servlet.mvc.AbstractController {
private PaymentDao paymentDao;
private JasperPdfView pdfView;
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename=" + "report.pdf");
PaymentOrderEntity paymentOrderEntity = null;
String traceCode = request.getParameter(ParamConstants.TRACE_CODE);
if (traceCode != null) {
PaymentSheetRequestEntity payRequestEntity = paymentDao.loadByUniqueProperty(PaymentSheetRequestEntity.PROP_TRACE_CODE,
traceCode);
if (payRequestEntity != null) {
paymentOrderEntity = payRequestEntity.getPaymentOrder();
}
}
if (paymentOrderEntity != null) {
List<PaymentOrderEntity> result = new ArrayList<PaymentOrderEntity>();
result.add(paymentOrderEntity);
JRDataSource jrDataSource = new JRBeanCollectionDataSource(result);
Map<String, Object> model = new HashMap<String, Object>();
model.put("reportData", jrDataSource);
return new ModelAndView(pdfView, model);
}
return null;
}
public void setPaymentDao(PaymentDao paymentDao) {
this.paymentDao = paymentDao;
}
public void setPdfView(JasperPdfView pdfView) {
this.pdfView = pdfView;
}
}
I JasperPdfView Klasa:
public class JasperPdfView extends AbstractJasperReportsView {
@Override
protected void renderReport(JasperPrint populatedReport, Map<String, Object> model, HttpServletResponse response) throws Exception {
JRPdfExporter jrPdfExporter = new JRPdfExporter();
if (getConvertedExporterParameters() != null) {
jrPdfExporter.setParameters(getConvertedExporterParameters());
}
jrPdfExporter.setParameter(JRExporterParameter.JASPER_PRINT, populatedReport);
jrPdfExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
jrPdfExporter.exportReport();
}
}
Jakieś postępy w tym?Otrzymuję ten sam błąd – dgmora
Jakieś postępy? Mam do czynienia z podobnym problemem w przeglądarce Chrome (bez problemów we wszystkich innych przeglądarkach - IE, FF, Safari) –