一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

JS實現(xiàn)AJAX請求

 崋果山 2017-07-29

AJAX:全稱“Asynchronous JavaScript and XML”   (異步的JavaScript與XML)

AJAX請求的特點:

  1,不刷新頁面

  2,服務器僅返回需要的數(shù)據(jù)

AJAX引擎:XMLHttpRequest

  此對象是瀏覽器中的內置對象,在目前的所有瀏覽器中都支持此對象。

IE中獲取此對象:

if(window.ActiveXObject){
    var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}

 非IE中獲取此對象:

var xmlHttp=new XMLHttpRequest();

兼容模式:

var xmlHttp;//聲明一個對象
function createXMLHttpRequest(){
    if(window.ActiveXObject){//如果是IE,采用這種方式獲取
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }else{//非IE采用這種方式獲取
        xmlHttp=new XMLHttpRequest();
    }
}

 請求的格式:

  xmlHttp.open(請求方式,請求地址,[是否為異步請求]);

  xmlHttp.send();

Get請求:

xmlHttp.open("GET","ajax.do?name=tom",true);
xmlHttp.send();

 注:

get請求的傳值方式為請求地址后面跟  ?key=value

Post請求:

xmlHttp.open("POST","ajax.do",true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send("name=tom");

 注:

post請求的傳值方式是在send()方法中進行傳值,多個值用逗號隔開:name=tom,age=12

setRequestHeader的意思是設置請求頭的類型為表單類型:Content-Type="application/x-www-form-             urlencoded"  是form表單的默認屬性

 一個完整的AJAX請求的流程:

  1,創(chuàng)建XMLHttpRequest對象

  2,調用xmlHttp.open()設置請求內容

  3,設置回調函數(shù)(根據(jù)服務器返回的狀態(tài)信息,做什么事情)

  4,調用xmlHttp.send()發(fā)送請求

function sendAjax(){
    createXMLHttpRequest();//調用上面設置的兼容模式
    xmlHttp.open("GET","ajax.do?name=tom",true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange=callback;//狀態(tài)信息發(fā)生改變調用函數(shù)
    xmlHttp.send();
}

//回調函數(shù)
function callback(){
    alert("callback");
}

sendAjax();//瀏覽器會彈出幾次框(不同的瀏覽器可能不同)

 獲取AJAX請求的狀態(tài)碼和HTTP協(xié)議的狀態(tài)碼:

 AJAX請求的狀態(tài)碼有四個值:

  var xmlState=xmlHttp.readyState;

  1,已初始化

  2,數(shù)據(jù)傳輸中

  3,響應數(shù)據(jù)傳輸中

  4,響應完畢

HTTP協(xié)議的狀態(tài)碼有很多:

  var httpState=xmlHttp.status;

常見的狀態(tài)碼如下:

狀態(tài)碼意義
200服務器正確處理了請求并響應
404請求的頁面未找到
403沒有權限訪問請求的頁面
405頁面不接收該請求方式
408請求超時
500服務器處理請求時發(fā)生異常
503服務暫時不可用
304網(wǎng)頁未修改

使用Servlet獲取服務器端的文本:

//ajax.do
//這是Servlet類中的doGet方法
public void doGet(HttpServletRequest request,HttpServletResponse response){
    PrintWriter out=response.getWriter();
    out.print("OK");
    out.flush();
    out.close();
}
//callback
function callback(){
    if(xmlHttp.readyState==4){//響應完畢后
        if(xmlHttp.status==200){//http狀態(tài)碼為200時
            var result=xmlHttp.responseText;//獲取ajax請求的文本內容
            alert(result);
        }
    }
}

總結:

  • Ajax請求使用 XMLHttpRequest 對象

  • IE和非IE獲取對象的方式不同

  • GET,POST請求的傳值問題

  • Ajax請求的流程

  • Ajax請求的狀態(tài)碼和HTTP協(xié)議中服務器返回的狀態(tài)碼

  • 獲取簡單地服務器返回的文本信息

結語:(hunthon:入門級程序員)

        AJAX請求用來處理網(wǎng)頁請求是非常棒的技術,本篇博客旨在介紹Ajax的最簡單的用法,后續(xù)的文章會對Ajax做較詳細的描述,文章中如果出現(xiàn)錯誤請及時向我反饋,希望與大家一起進步。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    男女激情视频在线免费观看| 国产人妻熟女高跟丝袜| 精品一区二区三区人妻视频| 国产不卡最新在线视频| 少妇福利视频一区二区| 老司机精品视频免费入口| 不卡中文字幕在线免费看| 亚洲熟妇熟女久久精品 | 午夜日韩在线观看视频| 不卡视频在线一区二区三区| 午夜亚洲少妇福利诱惑| 色婷婷视频国产一区视频| 色综合久久超碰色婷婷| 黑鬼糟蹋少妇资源在线观看| 国产伦精品一区二区三区高清版| 色狠狠一区二区三区香蕉蜜桃| 一区二区免费视频中文乱码国产| 国产精品涩涩成人一区二区三区| 欧美性猛交内射老熟妇| 美国欧洲日本韩国二本道| 欧美色婷婷综合狠狠爱| 99热九九在线中文字幕| 亚洲伊人久久精品国产| 亚洲乱码av中文一区二区三区| 精品欧美国产一二三区| 午夜福利直播在线视频| 亚洲av熟女一区二区三区蜜桃 | 一区二区三区日韩中文| 日本午夜精品视频在线观看| 又色又爽又无遮挡的视频| 丰满的人妻一区二区三区| 丁香七月啪啪激情综合| 国产在线一区二区三区不卡| 老富婆找帅哥按摩抠逼视频| 丰满人妻一二三区av| 樱井知香黑人一区二区| 好东西一起分享老鸭窝| 日韩欧美综合在线播放| 中文字幕人妻综合一区二区 | 国产精品一区二区三区欧美| 日韩精品综合免费视频|