如何在我的 angular 应用程序中调用和使用 spring REST POST API,它返回没有 body 的字符串?

How to call and use the spring REST POST API in my angular app which is returning string without body?

我正在尝试从我的 spring 应用程序访问 POST API 到 angular 但有点困惑如何使用和访问给定的 API 在我的 angular 应用程序中。

Spring 休息 API

@RequestMapping(value = "/getWelcomeMessage", method = RequestMethod.POST)
    public String getLoginWelcomeMessage() {
        return details.getLoginWelcomeMessage();
    }
    

给定的 API 正在从我的 Oracle 数据库中获取欢迎消息详细信息并返回一个字符串值。我正在尝试通过服务在我的 angular 代码中访问给定的 REST API。我定义了 post 服务如下

export class LoginService {

  constructor(private http : HttpClient) { }

  welcomeMessageService(){
    const headers = {'content-type':'application/text'}
    return this.http.put("http://localhost:8080/API/getWelcomeMessage",null,
    {'headers':headers});
  }

}

由于 post 方法需要三个参数 URL、Body 和 header。但就我而言,我的 spring REST API 不包含任何 body 并返回一个字符串。因此,我将 body 定义为 null 并将 header 类型更改为文本,因为默认情况下它是 JASON。

最后,我试图通过将它注入我的组件来访问给定的服务方法,如下所示-

export class LoginComponent implements OnInit {

  message:string;

  constructor(private loginService : LoginService) { }

  ngOnInit(): void {
    this.loginService.welcomeMessageService().subscribe(
      response =>{
        console.log(response);
        this.message = response;
      }
    )
  }

}

但是,当我尝试将响应分配给字符串时,出现无法将字符串分配给 object 的错误。我有点困惑为什么会出现此错误,因为我在定义服务时也将 header 类型更改为字符串,但仍然出现错误。

如果有任何人body 指导我,这将是一个很大的帮助,因为我是 angular 的新手并且有点混淆 API 与 [=32= 的集成部分].

使用{ responseType: 'text' }并发送一个不为空的空体

export class LoginService {

  constructor(private http : HttpClient) { }

  welcomeMessageService(){
    return this.http.put("http://localhost:8080/API/getWelcomeMessage",{},
    { responseType: 'text' });
  }

}

也许你把函数复制错了,但也请检查这里

@RequestMapping(value = "/getWelcomeMessage", method = RequestMethod.POST)
    public String getLoginWelcomeMessage() {
        return details.getLoginWelcomeMessage();
    }
    

这是一个 Post 方法,不是您尝试调用的 put

至于 cors 错误,将以下内容添加到 @Controller@RestControler 上面的后端,无论你有什么

@CrossOrigin(value = {"http://localhost:4200"}, methods = {GET,POST,PUT,DELETE})