1

別のドメインのmp3ファイルを必要とするHTML5オーディオAPIを使用してWebアプリケーションを作成しています。

mp3をとしてロードするためにこれを書きましたarraybufferが、これは別のドメインからファイルをロードできません。

makeSound.prototype.load = function(callback) {
  var request = new XMLHttpRequest();
  var that = this;
  request.open("GET", this.url, true);
  request.responseType = "arraybuffer";
  request.onload = function() {
    that.buffer = that.context.createBuffer(request.response, true);
    that.reload();
    callback(request.response);
  }
  request.send();
}

また、データはバイナリであるため、JSONPとしてリクエストする方法を見つけることができません。

回避策はありますか?

4

1 に答える 1

4

リモートドメインを制御できる場合は、データをBASE64エンコードに変換してから、JSONPを使用できます。別の方法として、リモートドメインでCORSを設定することもできます。

また、リモートドメインにアクセスできない場合は、ドメインとリモートドメイン間のブリッジとして機能するサーバー側スクリプトをドメインに設定できます。次に、AJAXリクエストを独自のスクリプトに送信します。このスクリプトは、HTTPリクエストをリモートドメインに委任し、バイナリデータをフェッチして、変更せずにクライアントに返します。

于 2012-12-28T07:18:57.887 に答える