Загрузка документа angularjs $http в iFrameJavascript

Форум по Javascript
Ответить
Гость
 Загрузка документа angularjs $http в iFrame

Сообщение Гость »


Я прочитал две дюжины ссылок, пытаясь заставить $http.get получить документ с моего сервера и загрузить его в iFrame. Вызов документа работает, и все оно хранится в data — и я вижу HTML, отображаемый на вкладке Preview сетевого раздела Chrome Devtools. Данные страницы/html есть, но я не могу отобразить их в iFrame.

Конфигурация приложения:

.config(function($sceDelegateProvider) { $sceDelegateProvider.resourceUrlWhitelist([ 'себя', 'https://api.example.com/v1/**' ]) ; }) В Сервисе:

.factory("eventService",function($http) { вар заголовки = { «Прагма»: «без кэша», «Срок действия истекает»: -1, «Cache-Control»: «нет кэша, необходимо выполнить повторную проверку», «Тип контента»: «приложение/json», «X-Requested-With»: «com.example», Авторизация: «Токен» +clientToken[0] } ; функция eventShow(dataObj) { //dataObj[0].fullVer = appVersion.replaceAll(".","" ; var baseUrl = "https://api.example.com/v1/events/event ... +dataObj.e ; вар req = { метод: «ПОЛУЧИТЬ», URL: базовый URL, тайм-аут: 30, заголовки: заголовки } вернуть $http(требование) .then(функция(ответ){ если (response.status == 200) { return {"success":true,data:response.data} ; } еще { //получил неправильный ответ return {"успех":false,error:response.status} ; } } }); } возвращаться { eventShow (идентификатор события) { console.log("tBuy: "+eventID) ; var dataObj = [{"e":eventID}] ; вернуть eventShow(dataObj) ; } }) В контроллере:

eventService.eventShow($scope.club.ceID) .then(функция(рез) { если (res.success == true) { console.log(res.data) ; $scope.eventItem.url = $sce.trustAsHtml(res.data); //$scope.eventItem.url = "data:text/html;charset=utf-8," + escape(res.data); $scope.eventItem.isLogin = 1; } }) ; HTML-шаблон:


{{eventItem.url}}
В контроллере console.log печатает всю запрошенную страницу, поэтому я знаю, что она загружена до этого момента, но не могу заставить ее отображаться/отрисовываться в iframe.
р>
В контроллере при использовании $scope.eventItem.url = $sce.trustAsHtml(res.data); - в iFrame ничего не загружается, ошибок не возникает, но за кулисами Я вижу, как все мое приложение перезагружается с каждым файлом JS (приложение JS и плагин JS), а также все мои шаблоны загружаются снова, и приложение функционально выходит из строя.

И когда я меняю контроллер на использование $scope.eventItem.url = "data:text/html;charset=utf-8," + escape(res.data); - я получаю эта ошибка: Загрузка ресурса заблокирована с URL-адреса, не разрешенного политикой $sceDelegate, но URL-адрес, который я передаю в вызов $http, указан в моем $sceDelegate
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»