我想在使用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,所以我不熟悉它。
任何人都可以建议一些好方法。
答案 0 :(得分:0)
我认为这是网址问题。尝试直接从浏览器访问您的URL(使用类似插件的firebug获取ajax URL)。如果问题是url那么正确
http.open("GET", "AjaxSameUser.jsp", true);