Angular.js - 防止直接访问部分视图

时间:2013-02-23 14:09:53

标签: angularjs

我希望用户在浏览器中访问其网址时无法直接查看部分内容。例如,如果我的部分视图位于:

/partials/myPartial.html

我仍然可以直接访问它并看到奇怪的标记。有没有办法防止它,并使部分视图只能通过角度?感谢。

2 个答案:

答案 0 :(得分:16)

我在每个视图部分的顶部放置一个<script>,检查包含主应用模块的变量是否存在,如果没有重定向到index.html

如果在app.js中以这种方式定义appModule:

var appModule = angular.module('myApp',["ngRoute","ngResource"]);`

在部分插入的顶部:

<script type="text/javascript">
  if(typeof appModule === 'undefined'){
    document.location.href="index.html";
  }
</script>

答案 1 :(得分:10)

嗯,不是真的。

在一天结束时,浏览器需要能够访问部分内容才能下载它。如果浏览器可以执行此操作,您的用户也可以这样做。您最终可能会让它们更难直接命中部分(例如通过配置服务器使其仅响应具有特定标头的请求并配置$http以在每个XHR请求上发送此标头)。 / p>

另一种可能性是按照here所述预先加载部分内容,而不是通过HTTP公开它们(实际上这对于生产部署来说是一个很好的做法)。

否则很难提出一个有意义的解决方案而不知道你试图解决的确切问题(功能上说)。

相关问题