ajax的兩種提交方式(get/post)和兩種版本
2024-09-01 08:28:58
供稿:網友
最近比較閑,就把以前用過的技術串一下做個手札,方便以后自己偷懶,小鳥你們幸福了。
首先主要是將javascript版本ajax做下注釋:ajax異步刷新主要是將所需條件拼成字符串傳入后臺,處理之后,直接調用回調函數將所得數據返還給頁面,并加以顯示,因為還在本頁面,所以不用刷新頁面,懂了了吧,本篇也用encodeURI對字符串做了加密,并在類里做了解碼,其中需要一些注意的地方在源碼里做了注釋。get/post兩種提交方式,但get提交容易亂碼,一定多加注意
jsp頁面:
代碼如下:
<%@ 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%>">
<script type="text/javascript" >
var xmlHttp;
function createxmlHttpRequest(){
if(window.XMLHttpRequest){
xmlHttp= new XMLHttpRequest();//IE7+,FireFox,Opera,Safari,Chrome
}else{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function test(){//get
//獲取參數
//var unames=encodeURI(document.getElementById("username").value);//一次編碼java用new String(name.getBytes("ISO8859-1"), "UTF-8")解碼
var unames=encodeURI(encodeURI(document.getElementById("username").value));//兩次編碼才能用java.net.URLDecoder.decode(name,"utf-8");解碼
var pws=encodeURI(document.getElementById("password").value);
createxmlHttpRequest();
xmlHttp.onreadystatechange=readyState;
//function(){
//alert(xmlHttp.readyState+"=="+xmlHttp.status);//判斷請求狀態
//}
xmlHttp.open("get","AjaxServlet1?msg=gets&name="+unames+"&pwd="+pws+"&timeStamp="+new Date().getTime(),true); //get 方式提交中文會出現亂碼,encodeURI()/encodeURIComponent()將中文轉成16進制編碼,把字符串作為URI進行編碼
xmlHttp.send(null);
}
function testp(){//post
//獲取參數
var unames=document.getElementById("username").value;
var pws=document.getElementById("password").value;
createxmlHttpRequest();
xmlHttp.onreadystatechange=readyState;
xmlHttp.open("post","AjaxServlet1",true);
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var str="msg=posts&name="+unames+"&pwd="+pws+"&timeStamp="+new Date().getTime();
xmlHttp.send(str);//send 可用于傳參
}
function readyState(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
var msg= xmlHttp.responseText;
//alert(msg);
document.getElementById("result").innerHTML=msg;
}
}
}
</script>
<title>js異步刷新</title>
</head>
<body>
<center>
<div id="response">
</div>