【发布时间】:2018-12-19 04:23:53
【问题描述】:
我正在尝试让用户像这样使用 Angular 6 服务:
this.http.get<User>('http://localhost:8080/test', {observe: 'response'})
.subscribe(
data => {
console.log(data);
},
error => {
console.log(error);
});
后端部分代码如下:
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {
@GetMapping
@ResponseStatus(HttpStatus.OK)
@CrossOrigin(origins = "http://localhost:4200")
public User test() {
log.info("Test controller");
return new User(1, "VR", "123123", "A",
"B", "123", "a@a.com", true, true, 4);
}
}
问题是,尽管看起来一切正常,但我可以使用邮递员、浏览器的后端休息服务,但我在前端部分没有得到任何东西。
我在console.log(data); 和console.log(error); 设置了断点,但它并不止于此!
我哪里做错了?我对 Anular 和前端开发还是很陌生。 我尝试禁用我使用的 REST 端点的安全性,但结果仍然相同。
我通过.pipe(...) 尝试过,但结果相同。
哦,是的,在我尝试使其工作时使用类似的代码,我得到了 error 和 OK 字符串一样,没有任何进一步的信息。
我通过wireshark探索了包,对我来说一切都很好。
我被困住了。
非常感谢任何帮助。
【问题讨论】:
-
您是否使用浏览器 devtools 网络选项卡查看发生了什么?有没有想过在
proxy.conf.json中使用代理配置? -
你的User后端和前端模型是一样的吗?尝试从 get 调用中删除
<User>演员表,看看是否有任何结果。 -
你能把你服务中的所有代码都从控制台中粘贴过来吗?
-
@ibenjelloun 对服务器的两个请求,第一个 OPTIONS,第二个 GET 本身,状态均为 200。JWT 令牌存在于 GET 响应中。从未使用过 angula 代理,将阅读并尝试。
-
@GijsPost 非常感谢,您的评论很有帮助!
标签: angular rest spring-boot rxjs angular6