最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

由于項(xiàng)目中需要在提交ajax前設(shè)置header信息,jquery的ajax實(shí)現(xiàn)不了,我們自己封裝幾個(gè)常用的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對(duì)象
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
//低版本的IE瀏覽器沒(méi)有提供XMLHttpRequest對(duì)象
//所以必須使用IE瀏覽器的特定實(shí)現(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對(duì)象
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
//低版本的IE瀏覽器沒(méi)有提供XMLHttpRequest對(duì)象
//所以必須使用IE瀏覽器的特定實(shí)現(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對(duì)象
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
//低版本的IE瀏覽器沒(méi)有提供XMLHttpRequest對(duì)象
//所以必須使用IE瀏覽器的特定實(shí)現(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)入的實(shí)現(xiàn)部分是后端的事情。

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

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

這里用到兩個(gè)對(duì)象:

第一個(gè)對(duì)象:FormData

第二個(gè)對(duì)象:XMLHttpRequest

目前新版的Firefox 與 Chrome 等支持HTML5的瀏覽器完美的支持這兩個(gè)對(duì)象,但I(xiàn)E9尚未支持 FormData 對(duì)象,還在用IE6 ? 只能仰天長(zhǎng)嘆....

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

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

相關(guān)文章

  • vscode?對(duì)?typescript代碼調(diào)試的步驟

    vscode?對(duì)?typescript代碼調(diào)試的步驟

    在VS?Code中,要對(duì)?TypeScript代碼進(jìn)行調(diào)試,需要先編譯?TypeScript?代碼為JavaScript代碼,這篇文章主要介紹了vscode對(duì)typescript代碼調(diào)試的方法,需要的朋友可以參考下
    2023-03-03
  • 利用js實(shí)現(xiàn)在瀏覽器狀態(tài)欄顯示訪問(wèn)者在本頁(yè)停留的時(shí)間

    利用js實(shí)現(xiàn)在瀏覽器狀態(tài)欄顯示訪問(wèn)者在本頁(yè)停留的時(shí)間

    本文為大家介紹下利用JavaScript實(shí)現(xiàn)在瀏覽器狀態(tài)欄顯示停留時(shí)間即在狀態(tài)欄上顯示訪問(wèn)者在本頁(yè)停留的時(shí)間
    2013-12-12
  • 微信小程序日期選擇器使用詳解

    微信小程序日期選擇器使用詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序日期選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JavaScript超過(guò)Number最大值的解決方案

    JavaScript超過(guò)Number最大值的解決方案

    在JavaScript中,Number類型是基于IEEE754雙精度浮點(diǎn)數(shù)標(biāo)準(zhǔn)表示的,雖然在常見(jiàn)場(chǎng)景下非常高效,但在處理大數(shù)據(jù)時(shí),Number類型存在顯著的精度限制,在這些場(chǎng)景中,如何精確處理大數(shù)據(jù)和超大數(shù)字成為了一個(gè)重要的問(wèn)題,所以本文給大家介紹了JavaScript超過(guò)Number最大值的解決方案
    2025-01-01
  • JavaScript中常用的五種數(shù)字千分位格式化方法

    JavaScript中常用的五種數(shù)字千分位格式化方法

    數(shù)字格式化是開(kāi)發(fā)中經(jīng)常遇到的任務(wù),特別是在需要為數(shù)字添加千分位符或控制小數(shù)位數(shù)時(shí),以下是幾種常用的數(shù)字格式化方法,每種方法有其優(yōu)缺點(diǎn),適用于不同的需求場(chǎng)景,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-12-12
  • layUI使用layer.open,在content打開(kāi)數(shù)據(jù)表格,獲取值并返回的方法

    layUI使用layer.open,在content打開(kāi)數(shù)據(jù)表格,獲取值并返回的方法

    今天小編就為大家分享一篇layUI使用layer.open,在content打開(kāi)數(shù)據(jù)表格,獲取值并返回的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • 詳解微信小程序?qū)徍瞬煌ㄟ^(guò)的解決方法

    詳解微信小程序?qū)徍瞬煌ㄟ^(guò)的解決方法

    這篇文章主要介紹了詳解微信小程序?qū)徍瞬煌ㄟ^(guò)的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 前端面試的底氣之實(shí)現(xiàn)一個(gè)深拷貝

    前端面試的底氣之實(shí)現(xiàn)一個(gè)深拷貝

    最近學(xué)到一個(gè)有關(guān)深拷貝的實(shí)現(xiàn)方法,為加深印象,這里給大家分享一下,下面這篇文章主要給大家介紹了關(guān)于前端面試的底氣之實(shí)現(xiàn)一個(gè)深拷貝的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 詳解JavaScript邏輯And運(yùn)算符

    詳解JavaScript邏輯And運(yùn)算符

    這篇文章主要介紹了JavaScript邏輯And運(yùn)算符,在JavaScript中,邏輯 AND 運(yùn)算符用雙和號(hào)(&&)表示
    2015-12-12
  • jquery動(dòng)態(tài)添加刪除div 具體實(shí)現(xiàn)

    jquery動(dòng)態(tài)添加刪除div 具體實(shí)現(xiàn)

    這篇文章介紹了jquery動(dòng)態(tài)添加刪除div實(shí)現(xiàn)代碼,有需要的朋友可以參考一下
    2013-07-07

最新評(píng)論

普定县| 年辖:市辖区| 宣恩县| 新津县| 沂水县| 泉州市| 武宣县| 泾源县| 托里县| 镇安县| 茌平县| 营口市| 新津县| 石渠县| 无锡市| 裕民县| 循化| 江孜县| 金湖县| 孟村| 邹城市| 瓮安县| 阿尔山市| 浪卡子县| 成都市| 襄城县| 新绛县| 青田县| 辉县市| 竹溪县| 榆社县| 安顺市| 临江市| 花莲县| 安西县| 临泽县| 吉木萨尔县| 玉树县| 隆化县| 濮阳市| 安仁县|