Ich versuche, einige Audiodaten von einer HTTP-POST-Anfrage zu laden und dann von einem Android-Gerät abzuspielen. Dies ist der Code, der diese Operation behandelt:Cordova - CSP weigert sich, Medienblob zu laden
var xhr = new XMLHttpRequest();
xhr.open('POST', encodeURI(myURLString), true);
xhr.responseType = 'blob';
xhr.onload = function(evt) {
var blob = new Blob([xhr.response], {type: 'audio/wav'});
var audio = new Audio();
audio.src = URL.createObjectURL(blob);
audio.play();
};
xhr.send(myData);
Wenn ich es laufen, bekomme ich folgende Fehlermeldung:
Refused to load media from 'blob:file:///d181cef8-136d-4dab-b5c6-598a0481755c'
because it violates the following Content Security Policy directive: "media-src *".
Ich bin nicht sicher, wie diese Richtlinie festgelegt, diese Datei zu erlauben, zu sein gespielt, und ich kann das nicht zur Arbeit bringen.
Irgendwelche Ideen? Danke im Voraus!
Die gesamte Richtlinie zu entfernen scheint zu funktionieren, aber es scheint kaum die richtige Lösung zu sein. Ist es? –
Sie müssen möglicherweise den Modifizierer 'blob:' zu Ihrer media-src-Anweisung hinzufügen, wie 'media-src * blob:'. [Weiterführende Literatur] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/media-src) – Phonolog
@Phonolog Perfect! Danke für den Link auch. Ich akzeptiere dies als eine Antwort, wenn Sie es als eins veröffentlichen. –