

IEでは問題なく動き、画像が表示されます。  
しかし、IE以外のブラウザ（Firefox、Safari）で動かした場合、「request.responseType="arraybuffer";」の部分で止まり、それ以降の文は動きません。  
この部分をコメントアウトすれば、動きはする様になります。

Firefoxの場合、openの後にresponseTypeを指定しなければならないという話も出てきましたが、それでも動かない様です。  
何が問題なのでしょうか。

[code]

    var request = new XMLHttpRequest();
    request.onload = function(){
      if(request.status==200){
        var blob=new Blob([request.response],{type:'image/gif'});
        document.getElementById('img').src=window.URL.createObjectURL(blob);
      }
    };
    request.open('GET',picture_name,false);
    request.responseType="arraybuffer";
    request.send();
    
[/code]


CC BY-SA 3.0
2015-12-16T12:42:52.273
20078
2015-12-16T14:33:24.927
2015-12-16T13:44:42.430
7471
13705
question
javascript
XMLHttpRequestのresponseTypeが、IE以外のブラウザの場合動かない


Firefox11より同期リクエスト(`request.open`の3つめの引数がfalseのリクエスト)でresponseTypeを使用するとエラーになるようになったそうです。

> 同期リクエストの実行時における、XMLHttpRequest responseType および withCredentials
> 属性の使用のサポートを削除しました。属性の使用を試みると、NS_ERROR_DOM_INVALID_ACCESS_ERR
> 例外が発生します。この変更は、W3C へ標準化の提案が行われました。

[Firefox 11 for developers - Mozilla |
MDN](https://developer.mozilla.org/ja/Firefox/Releases/11)

`request.open`の3つ目の引数をtrueに変更してみてください。


CC BY-SA 3.0
2015-12-16T14:33:24.927
20083
2015-12-16T14:33:24.927
5246
20078
answer