2013-03-31 4 views
0

Я пытаюсь использовать ajax, json в первый раз, и я столкнулся с ошибкой 404. Проблема заключается в том, что/login не найден, хотя я определил LoginServlet с шаблоном url/login в web.xml. Ниже приведен код web.xmlNetworkError: 404 Not Found - http: // localhost: 8080/login

<servlet> 
    <description></description> 
    <display-name>LoginServlet</display-name> 
    <servlet-name>LoginServlet</servlet-name> 
    <servlet-class>com.login.LoginServlet</servlet-class> 

    </servlet> 
    <servlet-mapping> 
    <servlet-name>LoginServlet</servlet-name> 
    <url-pattern>/login</url-pattern> 
    </servlet-mapping> 

Ниже приведен код для login.js

function Login(){ 
    console.log("in login function"); 
    var userId=$('#username').val(); 
    var pass=$('#password').val(); 

    if(userId=="" || pass==""){ 
     alert("UserId or Password cannot be blank!"); 
     document.getElementById("username").focus(); 
    }else{ 
     var url='/login'; 
     var dataString= 'action=login&userId='+userId+'&pass='+pass; 
     $.ajax({ 
      type: 'POST', 
      url: url, 
      data: dataString, 
      success: function (data){ 
       var loggedIn=data.html(); 
       console.log(loggedIn + " " + data); 
       $('#loggedIn').val(loggedIn); 
       $('#loggedIn').show(); 
      } 
      }); 
    } 

я использовал метод сервиса в LoginServlet вместо doGet() и doPost().

ответ

0

Я предполагаю, что вы пытаетесь получить доступ к сервлету login в веб-приложении, следовательно, это должно быть http://localhost:8080/webApp/login? Поскольку вы пытаетесь получить доступ к localhost:8080/login, вы получаете ошибку 404.

Вы должны изменить URL-адрес при вызове ajax на login вместо /login. Также попробуйте получить доступ к URL-адресу в обычном окне браузера и посмотреть, какой ответ вы получаете.

0

Попробуйте http://localhost/{web-app-name}/login

Как правило, каталог веб-приложение, где код развертывается. Также проверьте правильность введенного порта.

+0

Есть ли способ, что я могу использовать его, не давая имя каталога веб-приложения. – rkj

+0

работает с именем каталога веб-приложения –

+0

Да, он также работает с именем каталога веб-приложения, а также удаляет/перед входом в систему. – rkj

0

Вы пытались сразу увидеть URL-адрес, просто чтобы проверить его работу? Кроме того, сначала попробуйте простую HTML-форму, нет Ajax, простой HTML, чтобы проверить ваш результат, когда вы публикуете этот URL-адрес.

0

Я делаю это без / в моих заявках.

Попробуйте

var url='login'; 
Смежные вопросы