Ответ на ноль в ajax вызове с пружиной java - PullRequest
0 голосов
/ 13 января 2020

Я делаю функцию для создания простого Excel, отправляя список, я делаю всю работу обратно, но когда я пытаюсь прочитать ответ (xhr), он говорит мне, что он пуст и это больше тип контента Я отправляю его в Excel на заднюю панель, сзади я устанавливаю его снова и на передней панели с приложением ajax, которое я читаю / html. Может ли оно быть предварительно сконфигурировано из какого-либо js файла?

$.ajax({
        data: JSON.stringify(delAdjust),
        contentType: "application/vnd.ms-excel",
        sendMethod: "POST",
        target: "exportar_registros",
        success: function(data, status, xhr) {
            if (data != null && data != "FAIL") {
                var b64Data = data;
                debugger;
                var contentType = xhr.getResponseHeader("Content-Type"); //Obtenemos el tipo de los datos
                var filename = xhr.getResponseHeader("Content-Disposition"); //Obtenemos el nombre del fichero a desgargar
                filename = filename.substring(filename.lastIndexOf("=") + 1) || "download";
...
         }
    });

Я пытаюсь собрать данные с помощью xhr, но получаю значение null

@RequestMapping(value = "exportarRegistros", method = RequestMethod.POST)
    @ResponseBody
    @Mantenimiento
    public void exportarRegistros(@RequestBody final RegistroDto registro,HttpServletRequest request, HttpServletResponse response)
            throws AccessDeniedException, IOException, AjusteException {

        List<AjusteDto> listadoAjustesFinal  = this.ajusteGenerateExcel.listadoAjustes(registro);
        HSSFWorkbook resultado = this.ajusteGenerateExcel.exportAdjust(listadoAjustesFinal);

        File file = File.createTempFile("ajustes-", ".xls");
        FileOutputStream report = new FileOutputStream( file.getPath() );

        response.setContentType("application/vnd.ms-excel;base64");
        response.setHeader("Content-disposition", "attachment; filename=" + file.getName());

        resultado.write(report);
        resultado.close();
        report.close();

        FileInputStream in = new FileInputStream(file);
        byte[] bytes = new byte[(int)file.length()];
        in.read(bytes);
        String encodedBase64 = new String(Base64.encodeBase64(bytes));
        response.getOutputStream().write(encodedBase64.getBytes());
        in.close();

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...