我的一个控制器出了问题。当我使用( jason类型)向java控制器发送(POST)数据时,我会看到错误,这在主题中是可见的。所以我无法捕捉到服务器的响应。控制器很好地捕捉到这个请求,所以在这种情况下,图书被正确地添加到数据库中。Firebug显示404错误,但当我签入邮递员时,我看到了415不支持的媒体类型。如果控制器工作正常,为什么会出现这样的异常。
这是示例JSON:
{"title":"fgthbfgd","authors":[{"author_id":24,"author":"danielle steel"}],"genres":[{"genre_id":1,"genre":"Dramat"}],"description":"rthg","path_image":"19296.png"}
这是控制器:
@SuppressWarnings("finally")
@RequestMapping(value = "/rest/book", consumes = "application/json", produces = "application/json", method = RequestMethod.POST)
public MessageDTO addNewBook(@RequestBody BookDTO newBook) {
MessageDTO message = new MessageDTO();
try {
bookService.addNewBook(newBook);
message.setCheck(true);
} catch (BookTitleException e) {
message.setCheck(false);
message.setDescription("Ksiązka o tym tytule juz istnieje.");
e.printStackTrace();
} finally {
return message;
}
}
我是BookDTO
public class BookDTO implements Serializable{
private static final long serialVersionUID = -5057364006691079475L;
private Integer id;
private AuthorEntity [] authors;
private String description;
private GenreEntity [] genres;
private String title;
private String path_image;
private double rate;
private Integer progressBar;
private boolean flagRate;
private double userRate;
/* geters and seters */
}
这是角码:
var bookResource = $resource( $rootScope.restUrl + 'book');
var book = {
title : $scope.title,
authors : $scope.author,
genres : $scope.genre,
description : $scope.description,
path_image: null
}
service.addNewBook = function(book){
var deferred = $q.defer();
bookResource.save(book)
.$promise.then( function(data){
deferred.resolve( data );
}, function(){
deferred.reject("Error during adding new book.");
});
return deferred.promise;
}
这只是我应用程序中的一个问题。在另一种情况下,一切正常工作。
发布于 2015-04-02 14:28:24
您有415个错误,因为您发送请求时没有正确的content-type
头
var bookResource = $resource( $rootScope.restUrl + 'book',{}, {
save:{
method:"POST",
headers:{'Content-Type':'application/json; charset=UTF-8'}
}
});
我希望它能解决你的问题
https://stackoverflow.com/questions/29413078
复制相似问题