Я пытался подключить локальный запуск весенней загрузки в коде vs с angular в stackblitz, он продолжает показывать статус ожидания, а затем в сети:: error
пружинная загрузка: v3.3.1 угловой 17
URL-адрес бэкэнда: http://localhost:8080
и для stackblitz: https://stackblitzstartersf3qupm-d2jk--4200--dc4d7514.local-credentialless.webcontainer.io/
Я объявил файл WebConfig
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
и в файле запуска
@SpringBootApplication
@ComponentScan(basePackages = "com.example.novelWebsite", basePackageClasses = WebConfig.class) // Add CorsConfig
public class NovelWebsiteApplication {
public static void main(String[] args) {
SpringApplication.run(NovelWebsiteApplication.class, args);
}
}
я также попробовал подход объявления в контроллере, но все равно не удалось
@RestController
// @CrossOrigin(origins = "https://stackblitzstartersf3qupm-d2jk--4200--dc4d7514.local-credentialless.webcontainer.io/")
public class HelloController {
@GetMapping("/")
// @CrossOrigin(origins = "https://stackblitzstartersf3qupm-d2jk--4200--dc4d7514.local-credentialless.webcontainer.io")
public String index() {
return "Greetings from Spring Boot!";
}
}
в main.ts я добавил
bootstrapApplication(App, {
providers: \[provideAnimationsAsync(),
provideRouter(routes),
provideHttpClient()\]
});
я создал файл proxy.conf.json
{ "api": "http://localhost:8080",
"secure": false,
"changeOrigin": true }
и поместите его в angular.json
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"development": {
"buildTarget": "demo:build:development",
** "proxyConfig": "proxy.conf.json" **
},
"production": {
"buildTarget": "demo:build:production"
}
},
"defaultConfiguration": "development" } },
вот сервисный код
export class HelloService {
private apiURL = 'http://localhost:8080'; // Replace with your Spring Boot backend URL
constructor(private http: HttpClient) {}
getGreetings(): Observable\<string\> {
return this.http.get\<string\>(`${this.apiURL}`);
}
}
и код компонента, который его получил
ngOnInit() {
this.helloService.getGreetings().subscribe({
next: (response: string) => {
this.responseText = response;
},
error: (err) => {
console.error('Error fetching greetings:', err);
}
});
}
и показать в html
{{responseText}}
оно вернулось в
Error fetching data: HttpErrorResponse {headers: _HttpHeaders, status: 0, statusText: 'Unknown Error', url: 'http://localhost:8080', ok: false, …}
на вкладке сети показывался статус ожидания для него
Я пытался это исправить, но безрезультатно, буду признателен за любую помощь, спасибо
@jub0bs нет, это не связано, но я решил это, кстати, публично, локальный бэкэнд с помощью ngrok, а в angular я просто использую http, чтобы получить его





Я попробовал другой подход вместо локального бэкэнда и общедоступного интерфейса. Я также сделал бэкэнд общедоступным с помощью ngrok, и это сработало. Не забудьте удалить конфигурацию прокси-сервера в Angular.
Отвечает ли это на ваш вопрос? Доступ из источника https://example.com заблокирован, хотя я разрешил https://example.com/