2012-01-02 5 views
0

Javascriptを使用してJSPビューでAJAXを使用したいと思います。以下は、私のJSPコードsignup.jspです: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と同じフォルダにあります。

私はhttp.readyStateとhttp.statusをチェックしました。 readyStateは4になりますが、ステータスは404のままです。

私が知っているように、Viewのリクエストはすべて、Spring MVCのControllerを通過する必要があります。しかし、ここで私はSpringの介入なしにJavascriptからJSPページを直接呼び出すことはできませんか?

また、Spring MVCでAJAXを使用するにはどうすればよいですか?私はthisリンクを試しましたが、タイルを使用すると言います。私は新しい春からタイルを使い慣れていません。

誰かが良い方法を提案できますか?

+0

どこAjaxSamUser.jspはありますか? WEB-INFの中にいますか? – kosa

+0

@thinksteep:いいえ、signup.jspと同じフォルダにあります。どちらも/ WEB-INF/AllJsp /フォルダにあります。 – whitehat

答えて

0

URLの問題だと思います。ブラウザからURLに直接アクセスしてみてください(ajaxのURLを取得するためのアドオンのようなFirebugを使用してください)。問題がURLである場合は、正しい

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

関連する問題