Angular.js - Предотвращение прямого доступа к частичным представлениям - программирование
Подтвердить что ты не робот

Angular.js - Предотвращение прямого доступа к частичным представлениям

Я хочу, чтобы пользователи не могли просматривать частичные файлы непосредственно при доступе к их URL-адресу в браузере. Например, если мое частичное представление находится в:

/partials/myPartial.html

Я могу по-прежнему напрямую обращаться к нему и видеть нечетную разметку. Есть ли способ предотвратить это и сделать частичные представления доступными только через angular? Спасибо.

4b9b3361

Ответ 1

Ну, не совсем.

В конце дня браузеру необходимо иметь доступ к частичной загрузке. Если браузер может сделать это, ваши пользователи также смогут это сделать. В конце концов, вам может быть немного сложнее нанести вред частичным файлам (например, путем настройки вашего сервера, чтобы он отвечал только на запрос с определенным заголовком и настраивал $http для отправки этого заголовка по каждому запросу XHR).

Другая возможность состоит в том, чтобы предварительно загрузить частичные части вверх, как описано здесь, и не подвергать их вообще HTTP (на самом деле это хорошая практика для развертывания производства в любом случае).

В противном случае трудно предложить осмысленное решение, не зная, какая именно проблема (функционально говоря), которую вы пытаетесь решить.

Ответ 2

Я помещаю <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>