【问题标题】:Browser's loading AngularJS variables as URLs浏览器将 AngularJS 变量加载为 URL
【发布时间】:2015-03-23 09:13:23
【问题描述】:

我们最近在一个高流量网站上遇到了一个奇怪的错误,

这就是我们系统记录的错误

Uncaught Exception: The page you requested, assets/en-GB/assets/scripts/'+$scope.iframeURL+', could not be found. in file system/core/Framework.php on line 789

由于某种原因,似乎没有一种模式,用户浏览器正在请求 $scope.iframeURL 变量作为脚本文件?

此外,它还从脚本文件夹而不是 base href 请求文件,这会导致双重 /assets/en-GB/assets

对为什么会发生这种情况有什么想法吗?

【问题讨论】:

  • 您似乎将$scope.iframeURL 用作字符串而不是变量。检查 $scope.iframeURL 前后单引号 ' 的使用情况。请分享发出请求的确切代码,以确定基本href。

标签: javascript angularjs httprequest


【解决方案1】:

不看你的 html/javascript 就不容易回答你的问题。

也许您是直接设置 src 属性而不是使用ngSrc?这会导致浏览器在 Angular 初始化之前已经请求了一些资源,所以浏览器在 Angular 完成初始化之前加载了一个不正确的 url。

【讨论】:

  • 我必须承认它不是我的代码,所以我不知道它到底是什么/在哪里,但从变量名称“iframeURL”的外观来看,这表明可能存在 iframe src="{{ iframeURL}}” 潜伏!我会看看这个谢谢!
  • 我找到了这段 javascript -> content.after('<iframe src="'+$scope.iframeURL+'" class="inline-video"></iframe>'); 所以它不是由 HTML 呈现的,所以浏览器/机器人可以从 JS 文件中读取那行代码并尝试传递它?
  • @OwenMelbourne Google 解析并执行 javascript(请参阅 here),因此其他机器人也可以。您可以尝试添加更多来自此请求的日志记录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
  • 2017-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
  • 2016-10-14
相关资源
最近更新 更多