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

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