Soy nuevo en Struts2 y voy a enviar un conjunto de datos de formulario a la clase de acción de struts.
Este es mi código Ajax en jsp
$.ajax({ method: "POST", url: "getProjectPost", data: { "language" : langArr , "clientId": clientId, "projectName": projectName, "projectType": projectType}, traditional: true, success: function() { alert("Success"); }, error: function() { alert("Error"); } }); Este es mi struts.xml :
<package name="projectPost" namespace="/" extends="struts-default"> <action name="getProjectPost" class="com.test.ProjectPostAction" method="execute"> <result name="success" type="redirect"> <param name="location">/webpages/Client/Success.jsp</param > </result> <result name="failure">./LandingPage.jsp</result> <result name="error">./error.jsp</result> </action> </package>La solicitud de Ajax devuelve 200 OK, pero siempre alerta "Error". Remití muchos artículos pero aún no obtuve la solución adecuada
Está enviando una redirect de resultados mientras realiza una solicitud ajax. La solicitud de Ajax no lo redirigirá a otra ubicación, permanecerá en la misma página cuando se realizó la solicitud.
Cambio
<result name="success" type="redirect">a
<result name="success" type="dispatcher"> El dispatcher es un tipo de resultado predeterminado que representará JSP en la ubicación especificada y escribirá HTML de respuesta en la salida. Esta respuesta podría cargarse fácilmente con jQuery a cualquier div disponible en la misma página.
Sí, es posible que obtenga la respuesta 200 OK, pero la devolución de llamada de error se ejecuta en la solicitud ajax porque la respuesta de la URL solicitada está vacía.
Por lo tanto, debe verificar el código del lado del servidor por qué la respuesta está vacía o comunicarse con el desarrollador de back-end para obtener lo mismo.
Para obtener más calcificación, puede usar el siguiente código.
$.ajax({ method: "POST", url: "getProjectPost", data: { "language" : langArr , "clientId": clientId, "projectName": projectName, "projectType": projectType}, success: function(data){ console.log("in success function"); alert("Error:: " + data); }, error: function(data){ console.log("in error function"); alert("Error :: "+ data); } });