Maison > interface Web > js tutoriel > Comment envoyer et recevoir des octets binaires de données avec Ajax

Comment envoyer et recevoir des octets binaires de données avec Ajax

php中世界最好的语言
Libérer: 2018-04-04 14:49:52
original
3004 Les gens l'ont consulté

Cette fois, je vais vous montrer comment Ajax envoie et reçoit des données d'octets binaires. Quelles sont les précautions pour qu'Ajax envoie et reçoive des données d'octets binaires. Jetons un coup d'œil. .

La norme HTML5 Ajax 2.0 a amélioré de nombreuses fonctions d'Ajax, notamment l'envoi de données FormData, le téléchargementde donnéesbarre de progression et de nombreuses autres fonctions. Mais en fait, Ajax peut envoyer des données binaires par octets.

Envoyer des données binaires

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);
Copier après la connexion

ou

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);
Copier après la connexion

Recevoir des données binaires

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);
Copier après la connexion

Bien sûr, les paramètres ci-dessus ne peuvent être que de type texte. S'il s'agit de type Blob, les opérations suivantes peuvent être effectuées

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();
Copier après la connexion

ou

var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "blob";
oReq.onload = function(oEvent) {
var blob = oReq.response;
// ...
};
oReq.send();
Copier après la connexion
Si vous utilisez une ancienne version du navigateur, le chargement du binaire peut être comme suit

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;
}
Copier après la connexion
Remarque : x-user-defined indique au navigateur de ne pas analyser les données

Je crois que vous avez lu cet article. Vous maîtrisez la méthode des cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web PHP chinois !

Lecture recommandée :

Comment JSONP gère l'accès inter-domaines Ajax

Surveillance globale des opérations ajax, que faire si la session utilisateur échoue en cours de traitement

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal