Проблема AngularJS: $ sce: insecurl несмотря на $ sce.trustAsResourceUrl - PullRequest
0 голосов
/ 26 марта 2019

У меня есть настройка с использованием шаблонов из моего CDN, которая обычно работает нормально, но периодически я получаю эту ошибку:

ng-error: Error: [$sce:insecurl] http://errors.angularjs.org/1.7.5/$sce/insecurl?p0=https%3A%2F%2Fcomplicemail-herokuapp-com.global.ssl.fastly.net%2Fstatic%2Ftemplates%2Fviewschedule.a15ce4bf.html

Я выделил кодовую базу для viewsched, и буквально единственными двумя местами в коде, где этот шаблон, является мой список предварительного кэширования в моем сервисном работнике, и эта строка в файле angularjs:

$scope.scheduleTemplateUrl = $sce.trustAsResourceUrl('/templates/viewschedule.html')

Gulp превращает эту строку в ту, которая ссылается на CDN:

$scope.scheduleTemplateUrl = $sce.trustAsResourceUrl('https://complicemail-herokuapp-com.global.ssl.fastly.net/static/templates/viewschedule.a15ce4bf.html')

Я знаю, что эта часть работает, потому что ошибка insecurl показывает URL-адрес CDN.

Мое первое предположение, что проблема заключается в том, что «по какой-то причине (например, некачественный интернет) браузер не смог подключиться к CDN в тот момент и не смог получить файл, предоставив некоторый код ответа HTTP, который рассматривает AngularJS» небезопасно. Но я думаю, что это привело бы к этой проблеме (которую я также периодически получаю)

ng-error: Error: [$templateRequest:tpload] http://errors.angularjs.org/1.7.5/$templateRequest/tpload?p0=https%3A%2F%2Fcomplicemail-herokuapp-com.global.ssl.fastly.net%2Fstatic%2Ftemplates%2Ftimer%2Fuser-other.27734af8.html&p1=-1&p2=

Есть идеи? Также интересуются идеями о том, как более изящно обрабатывать ситуацию с ошибкой tpload в тех случаях, когда этот URL-адрес правильный, но в этот момент Интернет просто отключился.

...