Angular 4 http服务调用无法调用spring rest服务方法
我是初学者角4以及弹簧靴休息 我制作了一个简单的应用程序,其中Angular 4作为前端,Spring Rest作为API。 我试图从http请求调用SpringREST控制器方法(Post) 下面是Angular 4代码Angular 4 http服务调用无法调用spring rest服务方法,angular,hibernate,spring-boot,angular-http,spring-rest,Angular,Hibernate,Spring Boot,Angular Http,Spring Rest,我是初学者角4以及弹簧靴休息 我制作了一个简单的应用程序,其中Angular 4作为前端,Spring Rest作为API。 我试图从http请求调用SpringREST控制器方法(Post) 下面是Angular 4代码 从'@angular/core'导入{Injectable}; 从'@angular/Http'导入{Http,Headers,Response,RequestOptions}; @可注射() 导出类服务器服务{ 构造函数(私有http:http){} headers=新的
从'@angular/core'导入{Injectable};
从'@angular/Http'导入{Http,Headers,Response,RequestOptions};
@可注射()
导出类服务器服务{
构造函数(私有http:http){}
headers=新的头({“内容类型”:“应用程序/json”});
storeServers(学生:任意[]){
const WEBSERVICE_地址_学生:字符串=”http://localhost:8080/api/saveStudent";
返回this.http.post(WEBSERVICE\u ADDRESS\u STUDENT,JSON.stringify(students),{headers:this.headers})
.订阅(
(响应)=>console.log(响应),
(错误)=>console.log(“错误:”,+error)
);
}
}
/*************下面是学生数组*******************/
学生=[
{
学号:102,
姓名:“abc”,
姓:“xyz”,
城市:“空间”
},
{
学号:103,
名字:“杰克”,
姓:‘th’,
城市:海洋
}
];代码>通过做一些小改动,我成功地执行了上述代码
控制器
@RequestMapping(value = "/saveStudent", method = RequestMethod.POST, produces = "application/json")
public void saveStudent(@RequestBody StudentDetails[] objStudentDetailsList) {
System.out.println(objStudentDetailsList[0].getName());
}
实体
@Entity
@Table(name = "StudentDetails")
public class StudentDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long studentId;
private String name;
private String surName;
private String city;
public Long getStudentId() {
return studentId;
}
public void setStudentId(Long studentId) {
this.studentId = studentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurName() {
return surName;
}
public void setSurName(String surName) {
this.surName = surName;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
这里有很多问题。1.使用Angular 4,使用不推荐使用的Http服务,而不是最新的稳定版本,使用未推荐使用的HttpCLient服务。2.使用any
。3.忘记用@RequestBody
注释objStudentDetails参数。4.使用数组而不是列表。5.随机缩进每行代码。6.在服务中订阅,而不是返回一个可观察值,并在组件中订阅。错误是因为以上6点吗?我不认为Angular代码有问题,因为我在DotNet的WCF Rest服务中使用了相同的代码,并且它工作正常。Java端出了问题。不,是3和4导致了错误。但是你也应该开始研究其他的。让某些东西“起作用”是不够的。用2年前的框架版本开始一个新项目不是一个明智的决定。在这两年里,我发现了很多错误和改进。我对这些东西还不熟悉,所以我可能没有遵循最佳实践。但我不明白为什么错误指向StudentDetails类的构造函数。因为我已经在那里定义了构造函数。不,它指向类[Lcom.luv2code.springboot.cruddemo.entity.StudentDetails;
。这是类StudentDetails[]
,即StudentDetails数组。