jQueryの$.ajax()でバイナリをGETすると、parsererrorが返ってくるんだが...?
-
$.ajax()はバイナリをテキスト扱いしてしまうため - ググってみると、jQueryを諦めて潔く
XMLHttpRequestを書いて解決してる例が多い。。-
Henry Algusさんのブログを参照して「
$.ajaxで取得する方法はある!」と紹介しつつも、「$.ajaxTransportで長い記述したくない!」とXMLHttpRequestで済ませちゃう例が多数。。- そもそも、このブログでは何を言っているの?
-
Henry Algusさんのブログを参照して「
BinaryTransport
- 結論を言うと、これが
$.ajaxでバイナリを取得する方法である。- この関数を読み込ませるだけで、
$.ajaxでバイナリをGETできる!(jQuery$.ajaxの拡張) - Henry AlgusさんがGitHubで公開している https://github.com/henrya/js-jquery/tree/master/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){
}
});
これでコードがスッキリ!