天天看點

ajax的post請求方式

<%@ 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>