我有一个AngularJS Web应用程序调用我自己的Java Jersey API。现在一切都在localhost上运行。
这是Angular电话:
function Create(user) {
return $http.post('http://localhost:8080/NobelGrid/api/users/create/', user).then(handleSuccess, handleError('Error creating user'));
}
这是我的REST代码片段:
@Path("/create")
@POST
@Produces("application/json")
public Response create(String data) {
UserDataConnector connector;
JSONObject response = new JSONObject(data);
User userToCreate = new User(response.getString("surname"), response.getString("name"),
response.getString("mail"), response.getString("username"), response.getString("password"), 0);
try {
connector = new UserDataConnector();
connector.createUser(userToCreate);
} catch (IOException e) {
e.printStackTrace();
}
return Response.status(Response.Status.OK) // 200
.entity(userToCreate)
.build();
}
我只是在我自己的MySql DB上插入一个用户。
程序顺利因为用户被添加到Db中,无论如何它都会返回该错误。
请有人帮助我吗?
答案 0 :(得分:0)
试试这个:
function Create(user) {
return $http({
'url':'/NobelGrid/api/users/create',
'method': POST,
'data': user
}).then(function () {
// .....
});
}
答案 1 :(得分:0)
$http.post('http://localhost:8080/NobelGrid/api/users/create/', user).then(handleSuccess, handleError('Error creating user'));
var config = {
headers: { 'Content-Type': 'application/x-www-form-urlencoded'}
};
$http.post('http://localhost:8080/NobelGrid/api/users/create/', $httpParamSerializer(user), config).then(handleSuccess, handleError('Error creating user'));
你需要注入$ httpParamSerializer。
答案 2 :(得分:0)
问题是你正在使用注释@Produces而不是@Consumes,所以你不能传递一个JSON,如果你认为你不应该。{/ p>