>웹 프론트엔드 >JS 튜토리얼 >Ajax로 바이너리 바이트 데이터를 보내고 받는 방법

Ajax로 바이너리 바이트 데이터를 보내고 받는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-04 14:49:522993검색

이번에는 Ajax가 바이너리 바이트 데이터를 보내고 받는 방법과 Ajax가 바이너리 바이트 데이터를 보내고 받는 주의 사항은 무엇인지 살펴보겠습니다. 다음은 실제 사례입니다.

HTML5 Ajax 2.0 표준은 FormData 데이터 전송, 업로드데이터진행 표시줄 및 기타 여러 기능을 포함하여 Ajax의 많은 기능을 향상시켰습니다. 그러나 실제로 Ajax는 바이너리 데이터를 바이트 단위로 전송할 수 있습니다.

바이너리 데이터 보내기

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);

바이너리 데이터 받기

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);

물론, 위의 설정은 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();
이전 버전의 브라우저를 사용하는 경우 다음과 같이 바이너리를 로드할 수 있습니다

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-definition은 브라우저가 데이터를 구문 분석하지 않도록 지시합니다

이미 숙지하셨으리라 믿습니다. 이 기사의 사례를 읽고 나면 방법이 더 흥미로워집니다. PHP 중국어 웹사이트의 다른 관련 기사도 주목해 주세요!

추천 자료:

JSONP가 Ajax 도메인 간 액세스를 처리하는 방법

ajax 작업 전역 모니터링, 사용자 세션 실패를 처리하는 방법

위 내용은 Ajax로 바이너리 바이트 데이터를 보내고 받는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.