ajax的学多久,ajax第二天学习
post方式發送請求
要首先設置請求頭(參數設置為ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")
-->send中放入要發送的參數(key=value&key=value)-->發送數據(ajax.send(context))
當xml作為載體的時候servlet中聲明發送的格式為xml
response.setContextType("text/xml;charset=utf-8");
//定位button按鈕,同時添加單擊事件
document.getElementsByTagName("input")[0].onclick = function(){
//NO1)創建AJAX異步對象(每個瀏覽器內置的,無需第三方jar包)
var ajax = createAJAX();//0
//NO2)AJAX異步對象準備發送請求
var url = "${pageContext.request.contextPath}/TimeServletAjax?id="+new Date().getTime();
var method = "GET";
ajax.open(method,url);//1
//NO3)AJAX異步對象真正發送請求體的數據到服務器,如果請求體無數據的話,用null表示
var content = null;
ajax.send(content);//2
//----------------------------------------等待
//NO4)AJAX異步對象不斷監聽服務端狀態的變化,只有狀態碼變化了,方可觸發函數
//0-1-2-3-4,這些是可以觸發函數的
//4-4-4-4-4,這些是不可以觸發函數的
//以下這個函數是服務器來觸發的,不是程序員觸發的,這和onclick是不一樣的
ajax.onreadystatechange = function(){
//如果AJAX狀態碼為4
if(ajax.readyState == 4){
//如果服務器響應碼是200
if(ajax.status == 200){
//NO5)從AJAX異步對象中獲取服務器響應的結果
var str = ajax.responseText;
//NO6)按照DOM規則,將結果動態添加到web頁面指向的標簽中
document.getElementsByTagName("span")[0].innerHTML = str;
}
}
}
}
public?class?TimeServletAjax extends?HttpServlet {
public?void?doGet(HttpServletRequest request, HttpServletResponse response)throws?ServletException, IOException {
SimpleDateFormat sdf = new?SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(new?Date());
//注意:在Web2.0時代,即異步方式下,不能用轉發或重定向
//因為:轉發或重定向會引起瀏覽器全部刷新,而不是局部刷新
//所以得用以輸出流的方式將服務器的結果輸出到瀏覽器
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
pw.write(str);
pw.flush();
pw.close();
}
}
XMLHttpRequest(即:AJAX)對象常用事件,方法和屬性
(1)事件:
ajax.onreadystatechange:表示AJAX異步對象不斷監聽服務端的響應,
是由服務器程序觸發,不是程序員觸發
(2)屬性:
ajax.readyState==0:表示AJAX異步對象已創建好,但還沒有調用open()方法
ajax.readyState==1:表示AJAX異步對象已調用open()方法,但還沒有調用send()方法
ajax.readyState==2:表示AJAX異步對象已調用send()方法,但請求還沒有到達服務器端
ajax.readyState==3:表示服務端已接收到AJAX異步對象的請求,正在處理響應中。。。
ajax.readyState==【4】:表示AJAX異步對象已經完完全全接收到了服務器的響應信 ????????????息,但接收到的數據不一定都正確
上述5種狀態不是所有瀏覽器都相同,但狀態4每種瀏覽器都相同
ajax.status==200:表示AJAX異步對象接收到響應碼,如果是200的話,表示一切正常
ajax.responseText:表示從AJAX異步對象中獲取HTML載體中的數據
ajax.responseXML:表示從AJAX異步對象中獲取XML載體中的數據
總結
以上是生活随笔為你收集整理的ajax的学多久,ajax第二天学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 卡片放大变详情页,Con
- 下一篇: 离散数学反对称关系_《离散数学》学习记录