#java #angular #spring #spring-boot
Вопрос:
Когда я запускаю приложение с размещенного компьютера, я вижу таблицу. Если я запускаю приложение angular с другого компьютера в локальной сети, я получаю ошибку 0 в таблице.
Я видел, что это может быть проблемой с загрузкой CORS Java Spring, но я новичок в этом. В angular сделал сервер ng 192.168.xx —хост , я также попытался с 0.0.0.0 —хост, я построил это и попытался с http-сервером, но снова возникла та же проблема. Работает только на локальном хосте, другой компьютер в моей локальной сети не может видеть данные, только интерфейс.
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.setAllowedOrigins(Arrays.asList("http://localhost:4200","http://192.168.0.40:4200","http://192.168.0.140:4200","http://192.168.0.31:4200"));
corsConfiguration.setAllowedHeaders(Arrays.asList("Origin", "Access-Control-Allow-Origin", "Content-Type",
"Accept", "Jwt-Token", "Authorization", "Origin, Accept", "X-Requested-With",
"Access-Control-Request-Method", "Access-Control-Request-Headers"));
corsConfiguration.setExposedHeaders(Arrays.asList("Origin", "Content-Type", "Accept", "Jwt-Token", "Authorization",
"Access-Control-Allow-Origin", "Access-Control-Allow-Origin", "Access-Control-Allow-Credentials", "Filename"));
corsConfiguration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"));
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
Ответ №1:
Когда вы обслуживаете с помощью углового интерфейса командной строки, вы можете отключить элемент CORS, добавив --disable-host-check
флаг в ng serve
команду. Попробуйте выполнить следующие действия:
ng serve --disable-host-check
Документация для этого находится ЗДЕСЬ.
Существует также еще один вариант, на который вы можете обратить внимание, чтобы быть более безопасным , называемый --allowed-hosts
, который представляет собой массив хостов, с которых вы разрешаете подключаться. Вы также можете использовать эту опцию, чтобы помочь этой работе.
Желаю удачи.
Ответ №2:
Проблема устранена. Я действительно изменил угловую службу с
private readonly apiUrl = 'http://localhost:8080';
Для
private readonly apiUrl = 'http://192.168.0.xxx:8080';