原生js實現AJAX(三)

2021-08-04 03:39:31 字數 1389 閱讀 3617

/*對ajax的data資料進行編碼*/

u.encodedata=function

(data)

return pairs.join('&');

} if(u.isarray(data))

return pairs.join('&');

} return

newerror('資料不符合格式');

};/*判斷資料型別是否為陣列*/

u.isarray=function

(o)

/*判斷資料型別是否為物件*/

u.isobject=function

(o)

有了這些函式以後,就可以對data進行編碼,進行ajax請求時就可以使用多種型別的data,而不必拘泥於格式。

完整的**如下所示:

var u=window.u||{};

u.createxhr=function

() ,

function

() ,

function

() ];

for(var i=0;i<3;i++) catch(e)

this.createxhr=methods[i];

return methods[i]();

}throw

newerror("沒有找到xhr物件");

};/*對ajax的data資料進行編碼*/

u.encodedata=function

(data)

return pairs.join('&');

} if(u.isarray(data))

return pairs.join('&');

} return

newerror('資料不符合格式');

};u.isarray=function

(o)

u.isobject=function

(o)

u.ajax=function

(options) else

} xhr.open(method,url,true);

xhr.onreadystatechange=function

() } else }}

if(!file)

xhr.send(data);

}

在程式的引數中存在乙個file ,該引數表示data是否存在檔案物件,當需要在ajax請求中包含檔案時,可使用xhr2的formdata api。利用formdata將檔案包含在data中,同時設定file引數為true,即可在ajax請求中包含檔案。

該方法的缺陷是只有在支援xhr2的瀏覽器才可實現,存在一定的相容性問題。

原生js實現Ajax

一般來說,大家可能都會習慣用jquery提供的ajax方法,但是用原生的js怎麼去實現ajax方法呢?jquery提供的ajax方法 ajax success function error function 原生js實現ajax方法 var ajax obj.send post function u...

原生js實現Ajax

ajax success function error function 原生js實現ajax方法 var ajax xhr.send datat應為 a a1 b b1 這種字串格式,在jq裡如果data為物件會自動將物件轉成這種字串格式 post function url,data,fn xhr...

原生js實現Ajax

一般來說,大家可能都會習慣用jquery提供的ajax方法,但是用原生的js怎麼去實現ajax方法呢?jquery提供的ajax方法 ajax success function error function 原生js實現ajax方法 var ajax xhr.send post function u...