欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生JS封裝ajax 傳json,str,excel文件上傳提交表單(推薦)

 更新時間:2016年06月21日 10:30:19   作者:WoodK  
這篇文章主要介紹了原生JS封裝ajax 傳json,str,excel文件上傳提交表單(推薦)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

由于項目中需要在提交ajax前設(shè)置header信息,jquery的ajax實現(xiàn)不了,我們自己封裝幾個常用的ajax方法。

jQuery的ajax普通封裝

var ajaxFn = function(uri, data, cb) {
$.ajax({
url: uri,
type: 'POST',
dataType: 'json',
data: data,
})
.done(cb)
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
} 

原生ajax封裝,設(shè)置header,傳json

var ajaxHdFn = function(uri, data, cb) {
var getXmlHttpRequest = function() {
if (window.XMLHttpRequest) {
//主流瀏覽器提供了XMLHttpRequest對象
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
//低版本的IE瀏覽器沒有提供XMLHttpRequest對象
//所以必須使用IE瀏覽器的特定實現(xiàn)ActiveXObject
return new ActiveXObject("Microsoft.XMLHttpRequest");
}
};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
//獲取成功后執(zhí)行操作
//數(shù)據(jù)在xhr.responseText
var resJson = JSON.parse(xhr.responseText)
cb(resJson);
}
};
xhr.open("post", uri, true);
xhr.setRequestHeader("DeviceCode", "56");
xhr.setRequestHeader("Source", "API");
xhr.setRequestHeader("Authentication", "72b32a1f754ba1c09b3695e0cb6cde7f");
xhr.setRequestHeader("Content-Type", "application/json");
var dataStr = JSON.stringify(data);
xhr.send(dataStr);
} 

原生ajax封裝,設(shè)置header,傳json

var ajaxStrFn = function(uri, data, cb) {
var getXmlHttpRequest = function() {
if (window.XMLHttpRequest) {
//主流瀏覽器提供了XMLHttpRequest對象
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
//低版本的IE瀏覽器沒有提供XMLHttpRequest對象
//所以必須使用IE瀏覽器的特定實現(xiàn)ActiveXObject
return new ActiveXObject("Microsoft.XMLHttpRequest");
}
};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
//獲取成功后執(zhí)行操作
//數(shù)據(jù)在xhr.responseText
var resJson = JSON.parse(xhr.responseText)
cb(resJson);
}
};
xhr.open("post", uri, true);
xhr.setRequestHeader("DeviceCode", "56");
xhr.setRequestHeader("Source", "API");
xhr.setRequestHeader("Authentication", "72b32a1f754ba1c09b3695e0cb6cde7f");
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
var dataStr = '';
for (var i in data) {
if (dataStr) {
dataStr += '&';
}
dataStr += i + '=' + data[i];
}
xhr.send(dataStr);
} 

原生ajax封裝,設(shè)置header,傳上傳excel文件,提交表單

var ajaxFormFn = function(uri, formObj, cb) {
console.log('formObj---', formObj);
var getXmlHttpRequest = function() {
if (window.XMLHttpRequest) {
//主流瀏覽器提供了XMLHttpRequest對象
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
//低版本的IE瀏覽器沒有提供XMLHttpRequest對象
//所以必須使用IE瀏覽器的特定實現(xiàn)ActiveXObject
return new ActiveXObject("Microsoft.XMLHttpRequest");
}
};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
//獲取成功后執(zhí)行操作
//數(shù)據(jù)在xhr.responseText
var resJson = JSON.parse(xhr.responseText)
cb(resJson);
}
};
xhr.open("post", uri, true);
xhr.setRequestHeader("DeviceCode", "56");
xhr.setRequestHeader("Source", "API");
xhr.setRequestHeader("Authentication", "72b32a1f754ba1c09b3695e0cb6cde7f");
xhr.onload = function() {
console.log("上傳完成!");
};
xhr.send(formObj);
} 

導(dǎo)入的實現(xiàn)部分是后端的事情。

我們這里需要提交一個excel文件,使用ajax。

并且需要設(shè)置ajax的頭信息。所以我們不使用封裝好的插件。用原生js來封裝一個ajaxFormFn() 方法。

這里用到兩個對象:

第一個對象:FormData

第二個對象:XMLHttpRequest

目前新版的Firefox 與 Chrome 等支持HTML5的瀏覽器完美的支持這兩個對象,但IE9尚未支持 FormData 對象,還在用IE6 ? 只能仰天長嘆....

有了這兩個對象,我們可以真正的實現(xiàn)Ajax方式上傳文件。

以上所述是小編給大家介紹的原生JS封裝ajax 傳json,str,excel文件上傳提交表單(推薦)的相關(guān)知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 詳解webpack引用jquery(第三方模塊)的三種辦法

    詳解webpack引用jquery(第三方模塊)的三種辦法

    這篇文章主要介紹了詳解webpack引用jquery(第三方模塊)的三種辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • javascript來定義類的規(guī)范小結(jié)

    javascript來定義類的規(guī)范小結(jié)

    javascript來定義類的規(guī)范,有利于代碼的可閱讀性。
    2010-11-11
  • javascript this指向相關(guān)問題及改變方法

    javascript this指向相關(guān)問題及改變方法

    這篇文章主要介紹了javascript this指向相關(guān)問題及改變方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 第二篇Bootstrap起步

    第二篇Bootstrap起步

    這篇文章主要介紹了第二篇Bootstrap起步的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • uploadify在Firefox下丟失session問題的解決方法

    uploadify在Firefox下丟失session問題的解決方法

    在用uploadify上傳插件時遇到了一個問題,在讀session時認為沒有權(quán)限而被攔截了,后來在后臺打印登錄時產(chǎn)生session的id和上傳時讀取session的id,解決方法如下,感興趣的朋友可以了解下
    2013-08-08
  • 微信小程序methods中定義的方法互相調(diào)用的實例代碼

    微信小程序methods中定義的方法互相調(diào)用的實例代碼

    這篇文章主要介紹了微信小程序methods中定義的方法互相調(diào)用的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • JavaScript設(shè)計模式之觀察者模式實例詳解

    JavaScript設(shè)計模式之觀察者模式實例詳解

    這篇文章主要介紹了JavaScript設(shè)計模式之觀察者模式,結(jié)合實例形式詳細分析了javascript觀察者模式的概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-01-01
  • TypeScript在Vuex4中使用TS實戰(zhàn)分享

    TypeScript在Vuex4中使用TS實戰(zhàn)分享

    這篇文章主要介紹了TypeScript在Vuex4中使用TS實戰(zhàn)分享,vuex4類型?Api分析和vuex4實戰(zhàn)兩部分講述,需要的小伙伴可以參考一下
    2022-06-06
  • JS實現(xiàn)提示框跟隨鼠標(biāo)移動

    JS實現(xiàn)提示框跟隨鼠標(biāo)移動

    在本篇內(nèi)容里小編給各位整理了一篇關(guān)于JS實現(xiàn)提示框跟隨鼠標(biāo)移動的相關(guān)實例代碼,需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • JS 用6N±1法求素數(shù) 實例教程

    JS 用6N±1法求素數(shù) 實例教程

    顯然,當(dāng)N≥1時,6N,6N+2,6N+3,6N+4都不是素數(shù),只有形如6N+1和6N+5的自然數(shù)有可能是素數(shù)。所以,除了2和3之外,所有的素數(shù)都可以表示成6N±1的形式(N為自然數(shù))。
    2009-10-10

最新評論