【发布时间】:2019-07-14 13:05:29
【问题描述】:
我的 Spring Boot 控制器发送字符串“hello Angular”作为对 http 请求的简单响应。
@Controller
@RequestMapping(path = "/u")
public class UController {
@RequestMapping("/greet")
public @ResponseBody String greet() {
System.out.println("you are in the method greet() ");
return "hello Angular";
}
}
我在控制台 (System.out) 看到 Angular 请求了正确的方法,并且响应应该已经发送到客户端。
我想通过 Angular 在网站上打印这条消息,所以我从 http 客户端订阅了 Observable,但它没有出现在屏幕上。
这是我的 Angular 组件:
import { Component, OnInit } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Component({
selector: 'app-root',
template: `
<div style="text-align:center">
<h1> {{greeting}} </h1>
</div>
<router-outlet></router-outlet>
`,
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit{
greeting : string;
constructor(private http: HttpClient){ }
ngOnInit() {
this.http.get<string>('http://localhost:8080/u/greet').subscribe(data => { this.greeting = data; });
}
}
我真的不知道如何解决它。
【问题讨论】:
-
如果在
subscribe()的正文中添加console.log(data),会记录什么?另外,您是否在浏览器的开发人员工具的网络选项卡中看到请求执行? -
我收到一个错误:SyntaxError: "JSON.parse: unexpected character at line 1 column 1 of the JSON data"
-
但我不知道出了什么问题。这只是一条简单的短信
-
查看我发布的答案。谢谢!
标签: angular spring spring-boot http