在Spring MVC View中使用AJAX将http.status作为404

时间:2012-01-02 13:24:49

标签: java ajax spring-mvc

我想在使用Javascript的JSP视图中使用AJAX。以下是我的JSP代码signup.jsp:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org    /TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

<script type="text/javascript">
var http;
function someAjax(){
    alert("ITS still WORKING");

    if(window.XMLHttpRequest){
        http = new XMLHttpRequest();
    }
    **http.open("GET", "AjaxSameUser.jsp", true);**    
    alert("After connection");
    http.onreadystatechange=handleResponse;
    http.send(null);
}

function handleResponse(){
    alert("readyState :" + http.readyState+"   status : "+http.status);
    if(http.readyState==4 && http.status==200){
        alert("State as expected");
        document.getElementById("usernameExists").innerHTML = http.responseText;
    }   
}
</script>
</head>
<body>
<form:form commandName="user" method="POST">
    <table>
        <tr>    
            <td> Username : </td>
            <td> <form:input path="name" id="username" onchange="someAjax()" />  </td>   
              <td> <div id="usernameExists"> Something already </div></td>
        </tr>
            </table>
</form:form>
</body>
</html>

SameUser.jsp有一些硬编码数据,它与signup.jsp在同一个文件夹中。

我检查了http.readyState和http.status。 readyState变为4,但状态仍为404。

我知道,View的每个请求都必须通过Spring MVC中的Controller。但是为什么我不能直接从Javascript调用JSP页面而没有Spring的干预?

或者我如何在Spring MVC中使用AJAX?我尝试了this链接,但它说要使用磁贴,因为我是新的Spring,所以我不熟悉它。

任何人都可以建议一些好方法。

1 个答案:

答案 0 :(得分:0)

我认为这是网址问题。尝试直接从浏览器访问您的URL(使用类似插件的firebug获取ajax URL)。如果问题是url那么正确

http.open("GET", "AjaxSameUser.jsp", true);