Я новичок в веб-разработке и пытаюсь научиться играть в фреймворк. Для серверной части я использовал play 2.8.x framework
, а для внешнего angular 8
. И я сталкиваюсь с некоторой проблемой, когда пытаюсь получить ответ от сервера. Во внешней части у меня есть только одна кнопка, которая отправляет запрос на сервер (play 2 framework). Это следующий код веб-интерфейса:
import { Component } from '@angular/core';
import {HttpClient, HttpHeaders} from "@angular/common/http";
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'ui';
constructor(private http: HttpClient) {
}
helloServer():void {
console.log("hello from client");
let url = 'http://localhost:9000/api/hello';
this.http.get<String>(url, {responseType: 'text' as 'json'}).subscribe((data: String) => console.log("Response from server: " + data));
}
}
, и на стороне сервера я обрабатываю этот запрос следующим образом:
package controllers;
import play.mvc.Controller;
import play.mvc.Result;
public class HomeController extends Controller {
public Result index() {
return ok("Hello from server.", "UTF-8");
}
}
, и когда сервер отправляет ответ в браузер, который у меня есть следующая ошибка:
Access to XMLHttpRequest at 'http://localhost:9000/api/hello' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Это потому, что я отправляю запрос из другого домена. И я не хочу добавлять заголовок во все контроллеры. Я хочу добавить этот заголовок в одном месте ко всем ответам, которые будут отправлены с сервера. Как я могу это сделать?