Javascript Response.success未定义在angular中
我有一个AngularJS web应用程序,其后端是RESTfulJersey Api 我正在开发和测试此api,以创建用户:Javascript Response.success未定义在angular中,javascript,java,angularjs,rest,jersey,Javascript,Java,Angularjs,Rest,Jersey,我有一个AngularJS web应用程序,其后端是RESTfulJersey Api 我正在开发和测试此api,以创建用户: function Create(user) { return $http.post('http://localhost:8080/NobelGrid/api/users/create/', user).then(handleSuccess, handleError('Error creating user')); } 这是API(POST)的代
function Create(user) {
return $http.post('http://localhost:8080/NobelGrid/api/users/create/', user).then(handleSuccess, handleError('Error creating user'));
}
这是API(POST)的代码:
API运行良好,因为用户是在后端创建的(在我自己的数据库中)
但在angular web应用程序上,响应结果为未定义
以下是my bower的配置:
"dependencies": {
"angular": "1.4.x",
"angular-mocks": "1.4.x",
"jquery": "~2.1.1",
"bootstrap": "~3.1.1",
"angular-route": "1.4.x"}
我还有其他API(GET call)工作得很好(后端响应为200,web应用程序上的响应为200)
你能帮我吗
高级感谢。您没有在后端的响应中附加任何正文:
return Response.status(200)// 200
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT").build();
您需要设置写入程序并使用它序列化对象:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.PROTECTED_AND_PUBLIC);
ObjectWriter w = mapper.writer();
ResponseBuilder responseBuilder = Response
.ok(w.writeValueAsString(userToCreate ));
responseBuilder.header("Access-Control-Allow-Origin", "*");
responseBuilder.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
return responseBuilder.build();
映射器配置可能与您的用例不同…您的后端代码没有任何正文响应。将ResponseBuilder实体
添加到您的响应中。应如下所示:
return Response.status(Response.Status.OK)// Response.Status.OK: 200
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.entity(userToCreate).build();
return Response.status(Response.Status.OK)// Response.Status.OK: 200
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.entity(userToCreate).build();