2012-06-28 17 views
8

Hallo Ich habe versucht, einen AJAX-Aufruf an eine JSP-Seite zu machen. Hier ist das Stück JS-Funktion.jQuery Ajax Aufruf "Not Found" Fehler

<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> 

Ich bekomme ständig Datei nicht gefunden, obwohl JSP in der genannten URL existiert. Bitte beachten Sie, dass ich den Speicherort der JSP-Datei relativ zum Webapp-Verzeichnis berechne.

Ich versuchte mit den normalen AJAX-Aufrufe (ohne jQuery), endete aber mit demselben Fehler.

Könnten Sie mir bitte helfen zu verstehen, warum ist es nicht in der Lage, die JSP zu finden?

+0

In erster Linie, was gibt jsp/common/myJavascriptPage.jsp zurück? – TNC

+0

könnten Sie versuchen, die 'URL' in' "/jsp/common/myJavascriptPage.jsp" 'in Ihrem Anruf zu ändern? – MilkyWayJoe

+0

Ich gebe gerade ein Stück Text zurück.Es hat einen Java-Code eingebettet. Ich verwende 'response.getWriter(). Println (meineResponse);' – Leo

Antwort

13

Bitte beachten Sie, dass ich den Speicherort der JSP-Datei relativ zu dem des Webapp-Verzeichnisses berechne.

Hier geht es schief.

AJAX wird über den Webbrowser des Clients ausgeführt, was bedeutet, dass es sich nicht um irgendetwas auf dem Server handelt.

Wenn Sie diese Seite in einem Webbrowser treffen würden, wohin würden Sie gehen?

Hier möchten Sie Ihre Anfrage-URL sein.

Edit: Ich habe das offenbar nicht gut genug erklärt, also haben wir noch ein weiteres!

Lassen Sie uns sagen, dass ich eine Datei auf meinem Server haben, die wie so gespeichert wird:

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

Wenn ich diese Ressource über einen öffentlich zugängliche URL zugreifen wollte, wäre es nicht das gleiche wie der Dateipfad oben. Es könnte etwas wie common/myFile.jsp oder vielleicht sogar common/myFile sein.

Wenn dies der Fall war, muss ich die öffentlich zugängliche URL für eine AJAX-Anfrage verwenden, um an diese URL gesendet zu werden.

+1

Ich werde auf der gleichen Seite bleiben müssen. In der JSP ist nur ein Java-Code eingebettet, der mit einem Text zurückkehrt, der in der Datei index.jsp aktualisiert werden muss. – Leo

+0

Das ist in Ordnung! AJAX bedeutet einfach ausgedrückt, dass Sie eine HTTP-Anfrage stellen und sich keine Sorgen machen, wenn es zurückkommt. Es ist nicht anders als eine Seite in Ihrem Browser zu besuchen. Wenn die Anfrage gesendet wird, werden Sie nicht auf diese Seite oder auf andere Weise weitergeleitet. –

+0

Okay. Also muss die URL auf "index.jsp" bleiben. Wenn ja, wie rufe ich die JSP-Seite auf, um die Antwort von ihr abzurufen? – Leo

1

Offenbar ist Ihre URL unvollständig. Der wahrscheinlichste Grund für den Fehler ist, dass Sie keine vollständig qualifizierte URL haben.

Versuchen Sie, den vollständigen Pfad anzugeben und sehen Sie, ob das hilft.

0

Bitte überprüfen Sie die folgenden zwei Punkte auf der Seite nicht gefunden Fehler. Ich hatte auch das gleiche Problem. Mein Fall Ich habe eine JSON-Datei aufgerufen, um die Daten zu laden. Nachdem die folgenden Korrekturen korrigiert wurden, hat es gut funktioniert.

(1) Der Dateipfad (URL) sollte auf die aktuelle Seite relativ sein, wo das Skript

(2) In der .json (text/plain) MIME-Erweiterung in dem IIS-Server exeutes.

Verwandte Themen