Spring-boot RESTful серверная часть;метод тестирования, который будет возвращать строку:
@RequestMapping(value = "test", method = RequestMethod.GET)
public ResponseEntity<String> test(HttpServletRequest req, HttpServletResponse resp) {
try {
return new ResponseEntity<String>("Test has worked, biatch!", HttpStatus.OK);
} catch (Exception e) {
System.err.println("## EXCEPTION: " + e.getMessage());
return new ResponseEntity<String>(e.getMessage(), HttpStatus.BAD_REQUEST);
}
}
из Почтальона - все отлично работает, и я возвращаю String, правильно проанализированный из JSON.
Однако, когда пытаюсь сделать то же самое из моегоНа стороне клиента, я продолжаю получать сгенерированный объект HttpErrorResponse.
public url: string = "http://localhost:8080/theater/admin/test";
constructor(private as: AdminService, private http: HttpClient) { }
ngOnInit() {
}
getTest() {
this.as.getTest()
.subscribe(data => console.log(data), // this should happen on success
error => console.log(error)); // this should happen on error
}
достаточно забавно, он содержит строку, возвращенную с сервера, и я могу получить к ней доступ с помощью error.text
в функции подписки.объект Error на консоли:
HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost:8080/theater/admin/test", ok: false, …}
error
:
{error: SyntaxError: Unexpected token T in JSON at position 0 at JSON.parse (<anonymous>) at XMLHttp…, text: "Test has worked, biatch!"}
headers
:
HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message
:
"Http failure during parsing for http://localhost:8080/theater/admin/test"
name
:
"HttpErrorResponse"
ok
:
false
status
:
200
statusText
:
"OK"
url
:
"http://localhost:8080/theater/admin/test"
__proto__
:
HttpResponseBase
Это, вероятно, связано с анализом объекта JSON, возвращаемого с сервера, содержащего String.однако, возвращая объекты, коллекции и все остальное - работает нормально - .subscribe () анализирует все объекты, которые я получаю с сервера правильно, или, если на сервере произошла исключительная ситуация, возвращенный HttpStatus правильно вызывает HttpErrorResponse на стороне клиента.
Итак, что случилось с ошибкой стрельбы Strings?Я всегда получаю HttpErrorResponse, несмотря ни на что.я что-то здесь не так делаю?