关于社区,今天这个错误发生在我身上,我想知道你们中的某些人是否曾经遇到过您以及如何解决它。我正在用Java的servlet创建一个应用程序,该功能是有一个按钮,单击该按钮可以通过URL向我发送一个包含50条记录的json,以便生成一个excel。现在,当涉及到10条记录时,一切都很好,没有问题,当您在json左右有20条以上的记录时,这就是我发生错误的地方。经调查,我发现此错误发生是因为我发送的标头太长。这是我要发送的标头的示例:
Url: localhost:8080/pruebas/vistas/excel/Reporte_Insertados.jsp?registros=[{"CODPER":"123456","NRO":"1","DNI":"45874587","APELLIDOS_NOMBRES":"ROJAS%20LOPEZ%20GUSTAVO","FECHA":"14/01/2020","MONTO":"150.50","OBSERVACION":"DADSADSA","RAZON_SOCIAL":"","ESTADO":"DATOS%20CORRECTOS","":""}...] so until you have 50 records.
所以我的问题是:如果你们中的任何人解决了该问题,或者我该如何从servlet中解决这个问题,以允许标头很长,因为这是问题所在,它并没有使我烦恼,而错误却发生在我身上。我留下我的应用程序代码。预先感谢社区。
My Javascript code:
function exportarReporteInsertados(registrosInsertados){
let tabla_reporte_insertados = $("#tablaCargaMasiva").tableToJSON({});//Here grab all 50 records.
window.location = "excel/Reporte_Insertados.jsp?registros="+JSON.stringify(tabla_reporte_insertados)
}
我的用于接收数据的jsp代码
<%@page import="org.json.JSONObject"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="org.json.JSONArray"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
String datos = request.getParameter("registros");
JSONArray jsonArray_datos = new JSONArray(datos);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=REPORTE_CARGA_MASIVA.xls");
%>
@@ Felipo如果您需要发送json,请避免将其添加到url中。 url字符串有字符限制。另外,根据惯例,为了通过请求发送json,您需要将其添加到请求正文中,而不是添加到url