2012-06-28 16 views
8

Hola, he estado tratando de hacer una llamada ajax a una página JSP. Aquí está la pieza de la función JS.jQuery ajax llamada "No encontrado" error

<script> 
$(function(){ 

    function myAjaxCall() { 
    $.ajax({ 
     type: "post", 
     url: "jsp/common/myJavascriptPage.jsp", 
     dataType: "text", 
     success: 
      function (result) { 
       alert("Got the result: " + result); 
      }, 
      error: function (xhr,status,error) { 
       alert("Status: " + status); 
       alert("Error: " + error); 
       alert("xhr: " + xhr.readyState); 
      }, 
      statusCode: { 
       404: function() { 
        alert("page not found"); 
       } 
      } 
     }); 
    } 
}); 
</script> 

Estoy constantemente obteniendo el archivo no encontrado, a pesar de que JSP existe en la URL mencionada. Tenga en cuenta que estoy calculando la ubicación del archivo JSP en relación con el del directorio de webapp.

Intenté usar las llamadas AJAX normales (sin jQuery), pero terminé con el mismo error.

¿Podría ayudarme a entender por qué no puede encontrar el jsp?

+0

En primer lugar, ¿qué devuelve jsp/common/myJavascriptPage.jsp? – TNC

+0

¿Podría intentar cambiar 'url' por' "/jsp/common/myJavascriptPage.jsp" 'en su llamada? – MilkyWayJoe

+0

Acabo de devolver un trozo de texto.Tiene un código java incrustado. Estoy usando 'response.getWriter(). Println (myResponse);' – Leo

Respuesta

13

Tenga en cuenta que estoy calculando la ubicación del archivo JSP en relación con el del directorio de webapp.

Aquí es donde te equivocas.

AJAX se está ejecutando desde el navegador web del cliente, lo que significa que no es relativo a nada en el servidor.

Si accediera a esa página en un navegador web, ¿a dónde iría?

Ahí es donde desea que esté su URL de solicitud.

Editar: Claramente, no expliqué esto lo suficiente, ¡así que tengo otra oportunidad!

Digamos que tengo un archivo en mi servidor que se almacena de esta manera:

my_website/src/webapp/jsp/common/myFile.jsp

Si quisiera acceder a este recurso a través de un URL públicamente accesible, no sería lo mismo que la ruta del archivo arriba. Puede ser algo así como common/myFile.jsp o quizás incluso common/myFile.

Si este fuera el caso, entonces debo usar el públicamente accesible URL para que una solicitud AJAX pueda enviarse a esa URL.

+1

Necesitaré permanecer en la misma página. El JSP solo tiene un código Java incrustado en esto que retorna con un texto, que necesita ser actualizado en el archivo index.jsp. – Leo

+0

¡Eso está bien! AJAX, en términos más simples, solo significa que está haciendo una solicitud HTTP y no está preocupado cuando vuelva. No es diferente a visitar una página en su navegador. Cuando se envía la solicitud, no se le redirigirá a esa página o de lo contrario. –

+0

Bien. Entonces la URL debe permanecer en "index.jsp". En caso afirmativo, ¿cómo llamo a la página JSP para recuperar la respuesta? – Leo

1

Parece que su URL está incompleta. La causa más probable del error es que no tiene una URL completamente calificada.

Intente especificar la ruta completa y vea si eso ayuda.

0

Por favor, compruebe los siguientes dos puntos en la página No se ha encontrado el error. También me enfrenté al mismo problema. Mi caso, estaba llamando a un archivo json para cargar los datos. Después de corregir las siguientes correcciones, comenzó a funcionar bien.

(1) la ruta del archivo (URL) debe ser relativa a la página actual en la que la secuencia de comandos exeutes

(2) Añadir el .json extensión (text/plain) MIME en el servidor IIS.

Cuestiones relacionadas