<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>This is my JSP page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
div{
border: 1px solid red;
width: 400px;
height: 300px;
}
</style>
</head>
<body>
<input type="button" value="Ajax" onclick="testAjax()">
<div id="msg"></div>
</body>
<script type="text/javascript">
function testAjax(){
//document.getElementById("msg").innerHTML = "加載中...";
//id;
var request;
//建立 request對象
if(window.XMLHttpRequest){ //相容性
request = new XMLHttpRequest();
}else if(window.ActiveXObject){ //針對IE
request = new ActiveXObject("Msxml2.XMLHTTP");
//寫監聽 去check request的狀态
request.onreadystatechange = function(){
//
//console.log(request.readyState);
if(request.readyState == 4){
//得到 背景寫出的資料
//當加載成功以後
if(request.status == 200){
//得到的的是一個json字元串
var data = request.responseText;
//将json字元串轉換為json對象
eval("data = "+data);
document.getElementById("msg").innerHTML = data.password;
}else if(request.status == 404){
document.getElementById("msg").innerHTML = "資源沒有找到";
}else if(request.status == 500){
document.getElementById("msg").innerHTML = "伺服器錯誤";
}else{
document.getElementById("msg").innerHTML = "<img src=\"images/loading.gif\" />";
};
//打開請求
//如果在 位址欄上面 的參數 的值中包含 # 應該将其編碼 然後在傳遞
request.open("post", "ajax/ajaxController?name="+encodeURIComponent("lisi#123")+"&d="+new Date().getTime());
//encodeURIComponent(uriComponent)
//發送資料
//如果沒有資料 則寫null 不然 其他浏覽器可能會報錯
//如果在 send方法中傳參數 則一定要設定 請求頭資訊中的 Content-Type 為 application/x-www-form-urlencoded
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//如果是 post傳參 他和 參數的組織方式 是有關系的
request.send("username=lisi#123&age=123");
</script>
</html>