Ho un servizio web che sta inviando al client un file come ArrayBuffer che viene poi letta in un oggetto blob:"Accesso negato" quando l'incorporamento file da URL blob in IE
$scope.contentType = response.headers["content-type"];
$scope.file = new Blob([response.data], { type: $scope.contentType });
$scope.fileUrl = URL.createObjectURL($scope.file);
$scope.content = $sce.trustAsResourceUrl($scope.fileUrl);
sto usando un tag oggetto come contenitore:
<object id="documentContainer" ng-show="loaded" ng-attr-type="{{contentType}}" ng-attr-data="{{content}}" class="document-container"></object>
Questa grande opera in FF, cromo, i browser mobili, browser web sviluppato da specie aliene che non hanno mai avuto contatti con l'umanità, ecc, ma non in IE.
Quando il parametro i dati del tag object è impostato, IE risponde nella console con
Error: Access is denied.
Questo sembra essere una sorta di funzione di sicurezza in IE, dove non vuole utilizzare il file come un'origine perché risiede sul computer client. Vieta l'accesso anche se si utilizza javascript per creare un nuovo elemento dom con il set di origini dati.
Microsoft fornisce i propri metodi di blob come msSaveOrOpenBlob, ma devo essere in grado di incorporare il file nel browser, non richiedere all'utente di aprire il file in un'applicazione esterna.
Qualcuno sa di una soluzione alternativa o di un modo per incorporare il BLOB, che può essere una vasta gamma di tipi di file, in IE? Mi dispiacerebbe dover ridimensionare drasticamente il servizio web e il front-end solo per ospitare IE, ma sembra che potrebbe essere il caso.
L'api di blob è piuttosto diversa dall'utilizzo dell'uris di dati. Gli URI di dati sono pensati solo per la codifica di file di piccole dimensioni - penso che la maggior parte dei browser abbia un limite di pochi MB per la loro lunghezza. – mrturburdaugh
4 GB per la maggior parte e solo in IE. Per quel link sopra, i limiti di 4 GB sono iniziati in IE 9. –