이번에는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!