Chrome-Erweiterung: wie gehen ArrayBuffer oder ein Blob von content-Skript in den hintergrund, ohne seine Art?

Habe ich das content-Skript, das downloads einige binäre Daten mit XHR, die später gesendet werden, um die hintergrund-Skript:

var self = this;
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
  if (this.status == 200) {
     self.data = {
        data: xhr.response,
        contentType: xhr.getResponseHeader('Content-Type')
     };
  }
};
xhr.send();

... later ...
sendResponse({data: self.data});

Nach Erhalt dieser Daten im hintergrund-script, ich möchte eine andere form XHR-Anfrage, dass der Upload dieser binären Daten auf meinem server, so dass ich tun:

var formData = new FormData();
var bb = new WebKitBlobBuilder();
bb.append(data.data);
formData.append("data", bb.getBlob(data.contentType));
var req = new XMLHttpRequest();
req.open("POST", serverUrl);
req.send(formData);

Das problem ist, dass die Datei auf den server hochgeladen enthält nur diese Zeichenfolge: "[object object]". Ich denke, dies geschieht, weil ArrayBuffer Typ ist irgendwie verloren während der übertragung von Inhalt, Prozess in den hintergrund? Wie kann ich das lösen?

Schreibe einen Kommentar