我在角度5应用程序中有以下服务:
const httpOptions = {
headers: new HttpHeaders({
'Accept': 'application/json',
'Content-Type': 'application/json'
})
};
addTrip(trip: Trip): Observable<any> {
console.log('Adding trip ' + JSON.stringify(trip));
return this.http.post(`${this.baseUrl}/Trips/trip/`, JSON.stringify(trip), httpOptions);
}
旅行看起来像(有角度):
export interface Trip {
description: string;
}
java代码是使用rest api的seam组件:
@Name("tripFacadeREST")
@Scope(ScopeType.EVENT)
@Path("Trips")
public class TripFacadeREST {
@In private TripDaoHibernateImpl tripDao;
...
@POST
@Path("Trip")
@Consumes("application/json")
public Response addNewTrip(Trip newTrip) {
tripDao.addTrip(newTrip);
return Response.ok().entity("trip added successfully").build();
}
我无法接听此电话,我也尝试过但我明白put是用于更新的,因为id是在服务器端创建的,我使用了帖子, 服务器端未被触发。知道如何解决这个问题吗? (我能够在同一个服务中使用GET注释而没有任何问题。)
答案 0 :(得分:1)
您的HttpClient代码看起来没问题 - 因为您在网络选项卡中没有看到任何内容,我敢打赌您不会订阅sub rsp, X
返回的Observable。
如果你没有订阅observable,它就不会被执行。
来自文档:
始终订阅!
在您对该方法返回的observable上调用subscribe()之前,HttpClient方法不会开始其HTTP请求。对于所有HttpClient方法都是如此。