Я пытаюсь реализовать простой GET-запрос для отправки Объекта типа SearchMessage
с моего Spring Boot сервера на мой Angular клиентское приложение. Я запускаю серверное приложение и проверяю, правильно ли отображается относительный JSON на localhost:8080/greeting
, и он работает. Вот что я вижу:
{
"id": 1,
"inputText": "Hello, World!",
"targetSite": "Amazon",
"searchLimit": 10,
"numberOfProxies": 10,
"details": false
}
Затем я запускаю свой клиент, обращающийся к компоненту (http://localhost:4200/data
), который должен печатать в журнале содержимое этого JSON, но вместо этого я получаю в утешить следующую ошибку. Что я делаю не так?
ОШИБКА
Object {headers: {…}, status: 0, statusText: "Unknown Error", url: "localhost: 8080 / приветствие, ок: ложь, имя: «HttpErrorResponse», сообщение: «Http ошибка ответа для локального хоста: 8080 / приветствие: 0 неизвестная ошибка», ошибка: ошибка} core. js: 6014: 19
Приложение Spring
Содержимое SearchMessage.java
:
@Entity
public class SearchMessage {
private long id;
private String inputText;
private String targetSite;
private int searchLimit;
private int numberOfProxies;
private boolean details;
// Getters, setters and constructors...
}
Содержимое GreetingController.java
:
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@GetMapping("/greeting")
public SearchMessage greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
return new SearchMessage(counter.incrementAndGet(), String.format(template, name), "Amazon", 10, 10, false);
}
}
Необработанные данные отображаются на localhost:8080/greeting
:
{"id":3,"inputText":"Hello, World!","targetSite":"Amazon","searchLimit":10,"numberOfProxies":10,"details":false}
Angular приложение
Содержимое моего http.service.ts
:
import { Injectable } from '@angular/core';
import {HttpClient} from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class HttpService {
constructor(private http: HttpClient) { }
getGreeting() {
return this.http.get('localhost:8080/greeting');
}
}
Содержимое data.component.ts
:
import {Component, OnInit} from '@angular/core';
import {HttpService} from '../http.service';
@Component({
selector: 'app-data',
templateUrl: './data.component.html',
styleUrls: ['./data.component.scss']
})
export class DataComponent implements OnInit {
greeting: Object;
constructor(private _http: HttpService) {
}
ngOnInit() {
this._http.getGreeting().subscribe(data => {
this.greeting = data;
console.log(this.greeting);
});
}
}
Содержимое search-message.ts
:
export class SearchMessage {
constructor(
public id: number,
public inputText: string,
public targetSite: string,
public searchLimit: number,
public numberOfProxies: number,
public details: boolean
) { }
}