Чтобы поддерживать свойства приложения, такие как BaseURL, мы использовали для создания файла .properties
и извлекали его, когда это необходимо в Java-приложениях. В front-end angularJS приложении я могу создать файл .json
и вызвать его с помощью метода $http.get()
.
Могу ли я использовать angularJS constants
для этой функции вместо вызова $http
? Будет ли проблема с безопасностью, если я использую URL в константах AngularJS?Свойства приложения в AngularJs
1
A
ответ
2
В наших проектах мы клали всю такую конфигурацию в одном файле формата JSON, т.е.
{
"BASE_URL": "/myApp",
"VERSION": "1.0"
}
, а затем преобразовать этот файл на этапе сборки в угловом модуле, то есть:
agnular.module("myProject.config", [])
.constant("BASE_URL", "/myApp")
.constant("VERSION", "1.0";
и , наконец, добавьте исходный код приложения в этот конфигурационный модуль с соответствующей зависимостью:
angular.module("myProject", ["myProject.config"]);
Плагины Grunt и gulp, которые могут автоматизировать его для вас.
есть * всегда * проблемы с безопасностью при работе с клиентской стороной JavaScript. Клиенты могут (и будут) открывать консоль браузера и проверять содержимое вашего JavaScript. и даже инструменты минимизации не могут помочь в запутывании. Если вы обеспокоены чувствительностью своей информации, держите ее на стороне сервера. Хотя вам все равно придется публиковать по крайней мере ** один URL-адрес на клиенте, тот, который заставит HTTP-вызов загружать остальную часть вашей конфигурации, которую можно было бы считать тем же сервером, что и остальные ваши данные? Я не уверен, что попытка скрыть ваши URL-адреса является серьезной проблемой. – Claies
Oh! Я полностью упустил этот момент. Поэтому даже если я возьму URL-адрес из файла свойств, когда я сделаю вызов этого URL-адреса, это все равно будет отображаться в консоли браузера. Большое вам спасибо за материалы Claies. – DRB