我正在Eclipse Luna上使用以下技術開發動態Web應用程序:服務器端腳本JSP,Apache Tomcat v7.0,Oracle 11g作爲我的數據庫和JQuery。AJAX使用Jquery不能跨JSP頁面工作
下面是我的第一頁名.jsp這是一個基本的註冊頁面:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="stylesheet.css"/>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="ValidateRegister.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Welcome</title>
</head>
<body>
<%@include file="Home.jsp" %> <br/>
<div id="form">
<form id="login" action="RegisterProcess.jsp" method="post" name="login">
<table>
<tr><td>User Name</td><td><input type="text" name="uname"/><br/></td><td><p id="unamecheck"></p></td></tr>
<tr><td>Email ID</td><td><input type="text" name="uemail"/><br/></td><td></td></tr>
<tr><td>Password</td><td><input type="password" name="upass" /><br/></td><td></td></tr>
<tr><td></td><td><input type="submit" id="submit" value="Register"/></td><td></td></tr>
</table>
</form>
</div>
</body>
</html>
本頁面收集用戶憑證和表單提交以下JavaScript被觸發:
$(document).ready(function() {
$('#submit').click(function() {
var result=validateForm();
if(result===false)
return result;
else
checkUsername();
});}
);
function validateForm()
{
//does usual validation like empty string etc..
}
function checkUsername()
{
$.ajax(
{
url:"RegisterProcess.jsp",
data:$("#login").serialize(),
type:"post",
dataType:"json",
success:function(data)
{
$("#unamecheck").text(data);
},
error: function(xhr, status, errorThrown) {
alert("Sorry, there was a problem!" + status + errorThrown);
console.log("Error: " + errorThrown);
console.log("Status: " + status);
console.dir(xhr);
},
complete:function(xhr,status)
{
alert("The request is complete!");
}
});
}
JSP頁面被引用的是:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Processing</title>
</head>
<body>
<%@page import="bean.RegisterDao"%>
<jsp:useBean id="obj" class="bean.User"/>
<jsp:setProperty name="obj" property="*"/>
<%
final int status=RegisterDao.register(obj);
if(status>0)
out.print("You are successfully registered");
else
out.print("Username already exists!");
%>
</body>
</html>
當我按下提交表單時,我收到警告消息:「對不起,出現問題!錯誤」,然後是「請求已完成!」然後我重定向到RegisterProcess.jsp頁面,該頁面輸出正確的內容:「用戶名已存在」或「註冊成功」。
我已經使用Firebug進行調試,但不能破譯太多。任何幫助將不勝感激,因爲我找不到任何類似的問題以前被問到。
+1非常感謝!隨後我遵循你的解決方案並做了一些改變。我刪除了'dataType:「json」'這一行,並返回false爲我的提交方法。 –