JavaScript
jQuery
Ajax
BinaryTransport

jQueryのajaxでバイナリのデータを取得する

More than 1 year has passed since last update.


jQueryの$.ajax()でバイナリをGETすると、parsererrorが返ってくるんだが...?



  • $.ajax()はバイナリをテキスト扱いしてしまうため

  • ググってみると、jQueryを諦めて潔くXMLHttpRequestを書いて解決してる例が多い。。



    • Henry Algusさんのブログを参照して「$.ajaxで取得する方法はある!」と紹介しつつも、「$.ajaxTransportで長い記述したくない!」とXMLHttpRequestで済ませちゃう例が多数。。


      • そもそも、このブログでは何を言っているの?






BinaryTransport


使い方


Blobで取得

$.ajax({

url: "image.png",
type: "GET",
dataType: 'binary',
responseType:'blob',
processData: false,
success: function(result){
}
});


ArrayBufferで取得

$.ajax({

url: "image.png",
type: "GET",
dataType: 'binary',
responseType:'arraybuffer',
processData: false,
success: function(result){
}
});

これでコードがスッキリ!