Java 未捕获的语法错误:Function.parse[作为parseJSON](<;anonymous>;)处的JSON输入意外结束

Java 未捕获的语法错误:Function.parse[作为parseJSON](<;anonymous>;)处的JSON输入意外结束,java,json,Java,Json,我一直在犯这个错误。我怎样才能修好它 错误 未捕获的语法错误:JSON输入意外结束 在Function.parse[as parseJSON]() 反对。(:128:24) 在i(jquery.min.js:2) 在Object.fireWith[as resolveWith](jquery.min.js:2) 在A(jquery.min.js:4) 在XMLHttpRequest。(jquery.min.js:4) (此处抄录) 文件asqBatch.jsp 当我点击按钮时 function

我一直在犯这个错误。我怎样才能修好它

错误 未捕获的语法错误:JSON输入意外结束
在Function.parse[as parseJSON]()
反对。(:128:24)
在i(jquery.min.js:2)
在Object.fireWith[as resolveWith](jquery.min.js:2)
在A(jquery.min.js:4)
在XMLHttpRequest。(jquery.min.js:4)

(此处抄录)

文件asqBatch.jsp 当我点击按钮时

function genExcelRep() {
    var param = "${urlExcelLink}?year=${batchData.year}&period=${batchData.period}&programId=${batchData.programId}&batchId=${batchData.batchId}";
    repDialog = BootstrapDialog.show({
        title: "Generating Report",
        message: '<h1 style="text-align:center;vertical-align: middle;"><i class="fa fa-spinner fa-spin" style="font-size:40px;color:black"></i>&nbsp;5%</h1>',
        onshow: function(dialogRef) {
            dialogRef.enableButtons(false);
            dialogRef.setClosable(false);
            $.ajax({
                type: "POST",
                url:  param,
                cache: false
                })
                .done(function(result) {
                    console.log(result);
                    var data = $.parseJSON(result);
                    alert(json.pid);
                    alert("done(function(result) 1");
                    dialogRef.setMessage(data.result);
                    alert("done(function(result) 2");
                    if(data.isSuccess) {
                        alert("if(data.isSuccess)");
                        if(data.result == "Session Timeout") {
                            alert("Session Timeout");
                            SessionTimeOutRedirect("${redirectLink}");
                        }
                        else {
                            alert("generateExcelReport jsp");
                            generateExcelReport(data);
                        }
                    }
                    else {
                        alert("else(data.isSuccess)");
                        dialogRef.enableButtons(true);
                        dialogRef.setClosable(true);
                    }
               });
        },
        closable: false,
        closeByBackdrop: false,
        closeByKeyboard: false,
        buttons: [{
            label: 'Close',
            action: function(dialogRef) {
                dialogRef.close();
            }
        }]
    });
 }
@RequestMapping部分
@RequestMapping(method=RequestMethod.POST,value=“/DownloadExcel”)//
public void DownloadExcel(@modeldattribute(“ResultASQDataVO”)ResultASQBatchVO vo,ModelMap model,HttpServletRequest req,HttpSession session,HttpServletResponse){
logger.info(“generateExcelReportPart1年份:”+vo.getYear()+
“,”+vo.getPeriod()+
“,”+vo.getProgramId()+
“,”+vo.getBatchId());
ResultASQDataVO rec=新的ResultASQDataVO(vo.getYear(),
vo.getPeriod(),
vo.getProgramId(),
vo.getBatchId());
if(CommonMethod.IsSessionTimeOut(会话)){
rec.setResult(“会话超时”);
记录设置成功(真);
}
否则{
布尔值isSuccess=false;
字符串结果=”;
试一试{
logger.info(“generateExcelReportPart1”);
List lstReport=resultASQDataSER.distinctWorkSheet(
新结果SqDataSavo(记录getYear(),
记录getPeriod(),
rec.getProgramId(),
rec.getBatchId());
字符串arr=lstReport.toString();
rec.setListReports(String.join(“;”,arr));
logger.info(“generateExcelReportPart1 2”);
int cnt=lstReport.size()+1;
String dirReports=ReportCommonMethod.getTempReportFolderWithTimeStamp(新文件(context.getRealPath(“/”));
记录setDirPath(dirReports);
rec.setFiles(“”);
浮动无增量=0f;
记录设置成功(isSuccess);
logger.info(“generateExcelReportPart1 3”);
if(CommonMethod.validate(rec.getListReports())){
记录设置成功(真);
noIncrement=100/(cnt);
logger.info(“generateExcelReportPart1 4”);
而(无增量*cnt>100){
无增量-=0.25;
}
isSuccess=true;
结果=报告\u生成\u结果.PROGRESS.getAlert(String.valueOf(Math.round(noIncrement))+“%”;
}
logger.info(“generateExcelReportPart1 5”);
记录设置当前进度(无增加);
记录setNoIncrement(noIncrement);
记录设置结果(结果);
记录设置成功(isSuccess);
}
捕获(SQLE异常){
info(“本地化消息:+e.getLocalizedMessage());
logger.info(“异常消息:+e.getMessage());
logger.info(“异常原因:+e.getCause());
e、 printStackTrace();
e、 printStackTrace();
}
}
}

“rec.setResult(result)”中的值应显示在module.jsp文件中。

在屏幕截图console.log(result)中;var data=$.parseJSON(结果);如果显示null,则需要查看服务器的响应。如何查看服务器的响应?我尝试记录它,它显示values.logger.info(“rec.setResult(result);“+rec.getResult()+”rec.setSuccess(issucess);“+rec.issucess());ResultASQBatchController-rec.setResult(结果);1%rec.setSuccess(isSuccess);在您的屏幕截图中,console.log(结果);var data=$.parseJSON(结果);如果显示null,则需要查看服务器的响应。如何查看服务器的响应?我尝试记录它,它显示values.logger.info(“rec.setResult(result);“+rec.getResult()+”rec.setSuccess(issucess);“+rec.issucess());ResultASQBatchController-rec.setResult(结果);1%rec.setSuccess(isSuccess);真的
    model.addAttribute("urlExcelLink", "mainASQBatch/DownloadExcel.htm");
    model.addAttribute("contGenExcelUrl", "mainASQBatch/contGenerateExcel.htm");
@RequestMapping(method = RequestMethod.POST, value="/DownloadExcel") //
public void DownloadExcel(@ModelAttribute("ResultASQDataVO") ResultASQBatchVO vo, ModelMap model, HttpServletRequest req, HttpSession session, HttpServletResponse res) {
    logger.info("generateExcelReportPart1 year:" + vo.getYear() +
                "," + vo.getPeriod() +
                "," + vo.getProgramId() +
                "," + vo.getBatchId());
    ResultASQDataVO rec = new ResultASQDataVO(vo.getYear(),
                                              vo.getPeriod(),
                                              vo.getProgramId(),
                                              vo.getBatchId());

    if(CommonMethod.IsSessionTimeOut(session)) {
        rec.setResult("Session Timeout");
        rec.setSuccess(true);
    }
    else {
        boolean isSuccess = false;
        String result = "";

        try {
            logger.info("generateExcelReportPart1 1");
            List<ResultASQDataVO> lstReport = resultASQDataSER.distinctWorkSheet(
                new ResultASQDataVO(rec.getYear(),
                                    rec.getPeriod(),
                                    rec.getProgramId(),
                                    rec.getBatchId()));

            String arr = lstReport.toString();
            rec.setListReports(String.join(";", arr));
            logger.info("generateExcelReportPart1 2");
            int cnt = lstReport.size() + 1;
            String dirReports = ReportCommonMethod.getTempReportFolderWithTimeStamp(new File(context.getRealPath("/")));
            rec.setDirPath(dirReports);
            rec.setFiles("");
            float noIncrement = 0f;
            rec.setSuccess(isSuccess);
            logger.info("generateExcelReportPart1 3");
            if(CommonMethod.validate(rec.getListReports())) {
                rec.setSuccess(true);
                noIncrement = 100/(cnt);
                logger.info("generateExcelReportPart1 4");
                while(noIncrement*cnt>100) {
                    noIncrement -= 0.25;
                }
                isSuccess = true;
                result = REPORT_GENERATE_RESULT.PROGRESS.getAlert(String.valueOf(Math.round(noIncrement)) + "%");
            }
            logger.info("generateExcelReportPart1 5");
            rec.setCurrentProgress(noIncrement);
            rec.setNoIncrement(noIncrement);
            rec.setResult(result);
            rec.setSuccess(isSuccess);
        }
        catch (SQLException e) {
            logger.info("Localized Message: " + e.getLocalizedMessage());
            logger.info("Exception Message: " + e.getMessage());
            logger.info("Exception Cause: " + e.getCause());
            e.printStackTrace();
            e.printStackTrace();
        }
    }
}