Я получаю ошибку 0 в приложении Angular, если я вхожу с другого компьютера в сети

#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';