現在web從伺服器請求資料,很多用到ajax,不過都是用的jquery封裝好的,之前做專案,由於無法引用jquery,所以就只能用原生了,話不多說,請看**。
1/*-------------------ajax start--------------------*/2
3function
ajax(options) ;
5 options.type = (options.type || "get").touppercase();
6 options.datatype = options.datatype || "json";
7var params =formatparams(options.data);
8var
xhr;910
//建立 - 第一步
//連線 和 傳送 - 第二步
18if (options.type == "get") else
if (options.type == "post")
2728
//接收 - 第三步
29 xhr.onreadystatechange = function
() else37}
38}39}
4041
//格式化引數
42function
formatparams(data)
47 arr.push(("v=" + math.random()).replace(".",""));
48return arr.join("&");49}
5051
/*-------------------ajax end-------------------
*/
自己封裝ajax,主要分三步:
第一步:建立需要的物件,這裡主要用到的是xmlhttprequest,注意需要考慮早期的ie;
第二步:連線和傳送;
第三步:接收;
這裡為了格式化請求引數,封裝了乙個formatparams(data)函式。
原生js實現Ajax請求
原生的ajax請求離不開xhr物件,即xmlhttprequest物件。所有現代瀏覽器都內建有這個物件。建立整個物件 var xhr new xmlhttprequest 這裡有個版本的差異,ie5和ie6使用activex物件。不同的瀏覽器使用不同的物件。if window.xmlhttprequ...
原生js實現ajax非同步請求
返回xmlhttp的相容寫法 xmlhttp.open post ajax recelve true get post url 是否非同步 post方式 對於django像form表單一樣,會觸發403,跨站請求的warn xmlhttp.send name daxue 路由url url r aj...
使用原生JS實現Ajax請求
第一步 獲得xmlhttprequest物件 第二步 設定狀態監聽函式 ajax.onreadystatechange function 第三步 open乙個鏈結 ajax.open get h51701.json false true非同步請求,false同步 第四步 send傳送乙個請求。可以傳...