0

我第一次尝试使用 ajax、json 并且遇到 404 错误。尽管我在 web.xml 中使用 url 模式 /login 定义了 LoginServlet,但问题描述了 /login 未找到。下面是 web.xml 的代码

    <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()。

4

4 回答 4

0

尝试http://localhost/{web-app-name}/login

通常,web-app 目录是部署代码的地方。另外,检查输入的端口是否正确。

于 2013-03-31T05:56:17.547 回答
0

我猜你正在尝试login在 Web 应用程序中访问 servlet,因此它应该是http://localhost:8080/webApp/login正确的?由于您尝试访问localhost:8080/login,因此收到 404 错误。

您应该将 ajax 调用中的 url 更改为login而不是/login. 还可以尝试在普通浏览器窗口中访问 url,看看你得到了什么回复..

于 2013-03-31T05:58:29.280 回答
0

您是否尝试过直接查看网址,只是为了检查它是否正常工作?另外,首先尝试一个简单的 HTML 表单,不要使用 Ajax,纯 HTML,只是为了在您发布到该 url 时检查您的结果。

于 2013-03-31T06:01:45.427 回答
0

/在我的应用程序中没有这样做。

尝试

var url='login';
于 2013-03-31T06:01:56.513 回答