Ajax發(fā)送和接收二進(jìn)制字節(jié)流數(shù)據(jù)的方法
HTML5 Ajax 2.0標(biāo)準(zhǔn)中,增強(qiáng)了Ajax的許多功能,包括發(fā)送FormData數(shù)據(jù),上傳數(shù)據(jù)進(jìn)度條等諸多功能。但實(shí)際上,Ajax可以字節(jié)發(fā)送二進(jìn)制數(shù)據(jù)。
發(fā)送二進(jìn)制數(shù)據(jù)
var oReq = new XMLHttpRequest(); oReq.open("POST", url, true); oReq.onload = function (oEvent) { // Uploaded. }; var blob = new Blob(['abc123'], {type: 'text/plain'}); oReq.send(blob);
或者
var myArray = new ArrayBuffer(512); var longInt8View = new Uint8Array(myArray); for (var i=0; i< longInt8View.length; i++) { longInt8View[i] = i % 255; } var xhr = new XMLHttpRequest; xhr.open("POST", url, false); xhr.send(myArray);
接收二進(jìn)制數(shù)據(jù)
var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", true); oReq.responseType = "arraybuffer"; oReq.onload = function (oEvent) { var arrayBuffer = oReq.response; // Note: not oReq.responseText if (arrayBuffer) { var byteArray = new Uint8Array(arrayBuffer); for (var i = 0; i < byteArray.byteLength; i++) { } } }; oReq.send(null);
當(dāng)然,如上設(shè)置只能是文本類型,如果是Blob類型,那么如下即可
var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", true); oReq.responseType = "arraybuffer"; oReq.onload = function(oEvent) { var blob = new Blob([oReq.response], {type: "image/png"}); // ... }; oReq.send();
或者
var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", true); oReq.responseType = "blob"; oReq.onload = function(oEvent) { var blob = oReq.response; // ... }; oReq.send();
如果你使用的是舊版本的瀏覽器,那么加載二進(jìn)制可以如下
function load_binary_resource(url) { var req = new XMLHttpRequest(); req.open('GET', url, false); //XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com] req.overrideMimeType('text\/plain; charset=x-user-defined'); req.send(null); if (req.status != 200) return ''; return req.responseText; }
注意:x-user-defined告訴瀏覽器不要解析數(shù)據(jù)
以上所述是小編給大家介紹的Win7任務(wù)欄Ajax發(fā)送和接收二進(jìn)制字節(jié)流數(shù)據(jù)的方法的相關(guān)知識(shí),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Extjs ajax同步請(qǐng)求時(shí)post方式參數(shù)發(fā)送方式
- 詳解JavaScript for循環(huán)中發(fā)送AJAX請(qǐng)求問題
- 防止重復(fù)發(fā)送Ajax請(qǐng)求的解決方案
- AJAX使用post發(fā)送數(shù)據(jù)xml格式接受數(shù)據(jù)
- js與jQuery終止正在發(fā)送的ajax請(qǐng)求的方法
- AJAX中同時(shí)發(fā)送多個(gè)請(qǐng)求XMLHttpRequest對(duì)象處理方法
- jQuery通過Ajax向PHP服務(wù)端發(fā)送請(qǐng)求并返回JSON數(shù)據(jù)
- jquery+ajax每秒向后臺(tái)發(fā)送請(qǐng)求數(shù)據(jù)然后返回頁面的代碼
- jquery跨域請(qǐng)求示例分享(jquery發(fā)送ajax請(qǐng)求)
- 在Web關(guān)閉頁面時(shí)發(fā)送Ajax請(qǐng)求的實(shí)現(xiàn)方法
相關(guān)文章
Ajax異步請(qǐng)求JSon數(shù)據(jù)(圖文詳解)
在編程過程中使用ajax調(diào)用數(shù)據(jù)的時(shí)候,難免要進(jìn)行邏輯的處理,接受的數(shù)據(jù)也變的復(fù)雜比如數(shù)組類型的數(shù)據(jù),這時(shí)候就需要使用JSON數(shù)據(jù)類型進(jìn)行處理,通過本篇文章給大家介紹Ajax異步請(qǐng)求json數(shù)據(jù),需要的朋友可以參考下本文2015-09-09Ajax向后臺(tái)傳json格式的數(shù)據(jù)出現(xiàn)415錯(cuò)誤的原因分析及解決方法
ajax往后臺(tái)傳json格式數(shù)據(jù)報(bào)415錯(cuò)誤,什么原因?qū)е碌哪?,該怎么解決呢?下面腳本之家小編給大家?guī)砹薃jax向后臺(tái)傳json格式的數(shù)據(jù)出現(xiàn)415錯(cuò)誤的原因分析及解決方法感興趣的朋友一起看看吧2016-10-10Ajax請(qǐng)求超時(shí)與網(wǎng)絡(luò)異常處理圖文詳解
最近在項(xiàng)目中遇到一個(gè)問題,當(dāng)加載數(shù)據(jù)量特別大的時(shí)候會(huì)出現(xiàn)加載超時(shí)現(xiàn)象,所以這篇文章主要給大家介紹了關(guān)于Ajax請(qǐng)求超時(shí)與網(wǎng)絡(luò)異常處理的相關(guān)資料,需要的朋友可以參考下2021-05-05Ajax 的初步實(shí)現(xiàn)(使用vscode+node.js+express框架)
這篇文章給大家介紹使用vscode+node.js+express框架操作ajax的初步實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-06-06通過數(shù)據(jù)庫和ajax方法寫出地圖的實(shí)例代碼
AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個(gè)頁面的情況下。這篇文章主要介紹了通過數(shù)據(jù)庫和ajax方法寫出地圖的實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10用ajax實(shí)現(xiàn)預(yù)覽鏈接可以看到鏈接的內(nèi)容
用CSS設(shè)置預(yù)覽彈出窗口的樣式、用JavaScript進(jìn)行服務(wù)器請(qǐng)求并且顯示彈出窗口,需要的朋友可以參考下2014-08-08Jquery具體實(shí)例介紹AJAX何時(shí)用,AJAX應(yīng)該在什么地方用
ajax是一個(gè)非常方便的工具,具有和表單相同的功能完成前端和后臺(tái)之間的交互,起到局部刷新的作用,那么,大家知道ajax該何時(shí)用,用在哪些地方嗎?下面小編給大家分享Jquery具體實(shí)例介紹AJAX何時(shí)用,AJAX應(yīng)該在什么地方用,需要的朋友可以參考下2015-10-10關(guān)于ajax網(wǎng)絡(luò)請(qǐng)求的封裝實(shí)例
下面小編就為大家?guī)硪黄P(guān)于ajax網(wǎng)絡(luò)請(qǐng)求的封裝實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07