【问题标题】:Angular 6 and Spring boot - can't get data using simple HttpClient callAngular 6 和 Spring boot - 无法使用简单的 HttpClient 调用获取数据
【发布时间】: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(...) 尝试过,但结果相同。

哦,是的,在我尝试使其工作时使用类似的代码,我得到了 errorOK 字符串一样,没有任何进一步的信息。

我通过wireshark探索了包,对我来说一切都很好。

我被困住了。

非常感谢任何帮助。

【问题讨论】:

  • 您是否使用浏览器 devtools 网络选项卡查看发生了什么?有没有想过在proxy.conf.json 中使用代理配置?
  • 你的User后端和前端模型是一样的吗?尝试从 get 调用中删除 &lt;User&gt; 演员表,看看是否有任何结果。
  • 你能把你服务中的所有代码都从控制台中粘贴过来吗?
  • @ibenjelloun 对服务器的两个请求,第一个 OPTIONS,第二个 GET 本身,状态均为 200。JWT 令牌存在于 GET 响应中。从未使用过 angula 代理,将阅读并尝试。
  • @GijsPost 非常感谢,您的评论很有帮助!

标签: angular rest spring-boot rxjs angular6


【解决方案1】:

@Gijs Post 指出我的正确答案:User 的后端和前端模型不一样。修复这个已解决的问题。

【讨论】:

    猜你喜欢
    • 2019-12-08
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 2016-07-27
    • 2021-10-07
    相关资源
    最近更新 更多