2012-01-02 1 views
0

Javascript를 사용하여 JSP 뷰에서 AJAX를 사용하고 싶습니다.Spring MVC 뷰에서 AJAX 사용하기 http.status를 404로 제공

<%@ 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 같은 폴더에 : 다음은 내 JSP 코드 signup.jsp입니다.

나는 http.readyState와 http.status를 확인했다. readyState는 4가되지만 상태는 404로 유지됩니다.

내가 알고있는 것처럼 View의 모든 요청은 Spring MVC의 Controller를 통과해야합니다. 하지만 왜 여기에 Spring의 개입없이 Javascript에서 JSP 페이지를 직접 호출 할 수 없습니까?

아니면 Spring MVC에서 AJAX를 어떻게 사용합니까? 나는 this 링크를 사용해 봤지만, 새로운 봄 이래로 타일을 사용한다고 말하면서 익숙하지 않습니다.

누구든지 좋은 방법을 제안 할 수 있습니까?

+0

입니다 수정? WEB-INF 안에 있습니까? – kosa

+0

@thinksteep : 아니오 signup.jsp와 같은 폴더에 있습니다. 둘 다/WEB-INF/AllJsp/폴더에 있습니다. – whitehat

답변

0

URL 문제라고 생각합니다. 브라우저에서 직접 URL에 액세스 해보십시오 (아약스 URL을 가져 오는 데 애드온과 같은 방화범을 사용하십시오). 문제가 URL에있는 경우 다음 AjaxSamUser.jsp 어디

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

관련 문제