Ich endlich herausgefunden. Um Cross-Site-Scripting-Probleme zu vermeiden, habe ich einen Proxy-Endpunkt auf meinem Server erstellt. Dann kann ich die Image-URL an meinen Server übergeben, der dann eine GET-Anforderung für die Remote-Datei ausführt, die Antwort in Base64 konvertiert und sie zurück an den Browser sendet. Der Browser kann dann die Daten zurück in Binär konvertieren und einen Blob erstellen (der für meine Zwecke so gut wie eine Datei ist).
$.ajax({
url: apiRoot + "/proxy",
data: {url: "http://example.com/image.jpg"},
success: function(data) {
var binary = atob(data.split(',')[1]);
var array = [];
for (var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
var file = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
}
});
scheint relevant: http://stackoverflow.com/questions/8390855/how-to-instantiate-a-file-object-in-javascript – Jonah