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

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

亚连
亚连원래의
2018-05-23 17:34:405417검색

이 글에서는 Ajax가 바이너리 바이트 스트림 데이터를 보내고 받는 방법을 주로 소개합니다. 매우 훌륭하고 참고할만한 가치가 있습니다. 관심 있는 친구들은 함께 살펴보세요.

HTML5 Ajax 2.0 표준에는 Ajax의 많은 기능이 있습니다. FormData 데이터 전송, 데이터 진행률 표시줄 업로드 및 기타 여러 기능이 포함되어 있습니다. 그러나 실제로 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(&#39;GET&#39;, url, false);
//XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
req.overrideMimeType(&#39;text\/plain; charset=x-user-defined&#39;);
req.send(null);
if (req.status != 200) return &#39;&#39;;
return req.responseText;
}

참고: x-user-definition은 브라우저가 데이터를 구문 분석하지 않도록 지시합니다

위 내용은 제가 모든 사람을 위해 편집되었으며, 앞으로 도움을 받을 때 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

Ajax 기술을 사용하여 제품 수량 및 총 가격 예제 코드를 부분적으로 새로 고침

ajax 액세스 시 세션 실패 문제를 완벽하게 해결

Ajax 내부 값을 외부에서 호출할 수 없는 이유와 솔루션

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

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