我正在尝试从我的spring应用程序访问postapi到angular,但是有点困惑如何在我的angular应用程序中使用和访问给定的api。
Spring座api
@RequestMapping(value = "/getWelcomeMessage", method = RequestMethod.POST)
public String getLoginWelcomeMessage() {
return details.getLoginWelcomeMessage();
}
给定的api正在从我的oracledb获取欢迎消息的详细信息,并返回一个字符串值。我试图通过服务访问我的Angular 代码中给定的restapi。我对邮政服务的定义如下
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。但在我的例子中,我的springrestapi不包含任何主体和返回字符串。因此,我必须将body定义为null,并将header类型更改为text,因为默认情况下它是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;
}
)
}
}
但是,当我试图将响应分配给字符串时,我得到了一个错误,字符串不能分配给对象。我有点困惑为什么会发生这个错误,因为我在定义服务时也将头类型更改为string,但仍然得到错误。
这可以是一个很大的帮助,如果有人指导我关于这一点,因为我是新的Angular 和有点混淆的集成部分的api与Angular 。
1条答案
按热度按时间8xiog9wr1#
使用
{ responseType: 'text' }
并发送一个不为null的空体也许你复制了错误的函数,但也检查这里
这是一个post方法,不是您试图调用的put
至于cors错误,请在上面的后端添加以下内容
@Controller
或者@RestControler
不管你有什么