2012-06-28 29 views
8

Witam Próbuję wykonać wywołanie ajax na stronie JSP. Oto fragment funkcji JS.Błąd połączenia jQuery ajax "Nie znaleziono"

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

Nieustannie nie można znaleźć pliku, mimo że w podanym adresie URL istnieje JSP. Należy pamiętać, że obliczam położenie pliku JSP w stosunku do lokalizacji katalogu webapp.

Próbowałem używać normalnych wywołań AJAX (bez jQuery), ale skończyło się na tym samym błędzie.

Czy możesz pomóc mi zrozumieć, dlaczego nie jest w stanie zlokalizować jsp?

+0

Co przede wszystkim zwraca jsp/common/myJavascriptPage.jsp? – TNC

+0

Czy możesz spróbować zmienić 'url' na' "/jsp/common/myJavascriptPage.jsp" 'w swoim wywołaniu? – MilkyWayJoe

+0

Właśnie zwróciłem fragment tekstu.Ma wbudowany kod java. Używam 'response.getWriter(). Println (myResponse);' – Leo

Odpowiedz

13

Należy pamiętać, że obliczam położenie pliku JSP w stosunku do położenia katalogu webapp.

To tutaj się nie udaje.

AJAX jest wykonywany z poziomu przeglądarki klienta, co oznacza, że ​​nie jest on względny względem niczego na serwerze.

Jeśli miałeś trafić tę stronę w przeglądarce internetowej, gdzie chciałbyś pójść?

Tutaj należy podać adres URL żądania.

Edytuj: Wyraźnie nie wyjaśniłem tego wystarczająco dobrze, więc to jeszcze raz!

Powiedzmy mam pliku na moim serwerze, który jest zapisany tak:

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

Gdybym chciał uzyskać dostęp do tego zasobu przez publicznie dostępnym adresem URL, to nie byłby taki sam jak ścieżka pliku powyżej. Może to być coś w rodzaju common/myFile.jsp lub nawet common/myFile.

Jeśli tak było, to muszę użyć publicznie dostępnego adresu URL dla żądania AJAX, aby móc wysłać do tego adresu URL.

+1

Będę musiał pozostać na tej samej stronie. W JSP ma wbudowany kod Java, który zwraca tekst, który należy zaktualizować w pliku index.jsp. – Leo

+0

W porządku! AJAX, najprościej mówiąc, oznacza po prostu, że robisz żądanie HTTP i nie martwisz się, kiedy wróci. Nie różni się od odwiedzania strony w przeglądarce. Po wysłaniu wniosku nie zostaniesz przekierowany na tę stronę lub w inny sposób. –

+0

OK. Dlatego URL musi pozostać w "index.jsp". Jeśli tak, to w jaki sposób mogę wywołać stronę JSP, aby pobrać odpowiedź? – Leo

1

Wygląda na to, że Twój adres URL jest niekompletny. Najbardziej prawdopodobną przyczyną błędu jest to, że nie masz w pełni kwalifikowanego adresu URL.

Spróbuj podać pełną ścieżkę i sprawdź, czy to pomaga.

0

Proszę sprawdzić następujące dwa punkty błędu Nie znaleziono strony. Zmierzyłem się również z tym samym problemem. Mój przypadek dzwoniłem do pliku json, aby załadować dane. Po skorygowaniu poniższych poprawek, zaczęło działać poprawnie.

(1) Ścieżka pliku (URL) powinny być w stosunku do aktualnej strony, gdzie skrypt exeutes

(2) Dodaj .json (text/plain) rozszerzenie MIME na serwerze IIS.

Powiązane problemy