是否有可能在AngularJS中捕获“x-frame选项拒绝加载”错误?

时间:2017-02-08 14:48:41

标签: javascript angularjs iframe cross-domain

尝试在AngularJS视图中加载Iframe时遇到了一些困难,我遇到以下错误:

Load denied by X-Frame-Options: http://www.example.com does not permit cross-origin framing.

当面对这种类型的错误时,会发生一些链接,我想隐藏Iframe,所以我需要抓住这个错误。您可以在下面找到我正在使用的HTML和JS代码。

HTML:

<iframe id="contentIframe" ng-src="{{trustSrc()}}" frameborder="0" fullscreen></iframe>

控制器:

$scope.trustSrc = function () {
  return $sce.trustAsResourceUrl(ContentService.getCurrentContent().url);
};

我在StackOverflow上经历了几个问题,但我无法找到答案。 有没有办法在AngularJS中捕获以下错误?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

简短回答:不。

如果iframe正在加载另一个网站,则DOM API不允许将事件绑定到contentWindow对象或contentDocument对象。实际上,如果网址是跨域的,并且您的域未明确地被该域列入白名单,则几乎不会对iframe的状态进行检查。

因此无法通过AngularJs来实现。