一、ajax前台接受数据时,如果出现UncaughtReferenceError: data is not defined,要注意数据接受的格式问题:
如果是多对数据就是data[i].id,如果是一对就是data.id
1.1.1后台传递的数据格式是HashMap<String,String>,传输的是多组数据,即for()
//分类
@RequestMapping(value = "genre/{moviegenres}", method = RequestMethod.GET)
@ResponseBody
public List<HashMap<String, String>> selectMoviesByGenre(@PathVariable String moviegenres){
List<HashMap<String, String>> movies=new LinkedList<>();
List genreMovies=movieService.getMovieByGenres(moviegenres);
for (int i=0; i<genreMovies.size(); i++){
Movie thisMovie=(Movie)genreMovies.get(i);
HashMap<String, String> movie=new HashMap<>();
movie.put("movieId", thisMovie.getMovieId());
movie.put("movieTitle", thisMovie.getMovieTitle());
movie.put("movieScore", String.valueOf(thisMovie.getMovieScore()));
movie.put("moviePoster", thisMovie.getMoviePoster());
movie.put("movieGenres", thisMovie.getMovieGenres());
movies.add(movie);
}
return movies;
}
1.1.2前台接受数据是多组数据,即for( data[i].id)
function getMovieType(moviegenres) {
$.ajax({
url: ip + '/movie/genre/' + moviegenres,
type: 'GET',
dataType: 'json',
success: function(item) {
//alert(item.length)
$("#movieList_id").empty()
var str = '';
var i = 0;
for (var i = 0; i < item.length; i++) {
//add=item[i].moviePoster.replace("../","");
str+='<div class="test">'+'<img src="'+item[i].moviePoster+'" style="max-width: 100%;height: 14.6875rem" />'+
'<span>'+item[i].movieScore+'</span><a href="movieDetail2.html?id='+item[i].movieId+'">详情</a></div>'
}
$("#movieList_id").append(str)
},
Error: function() {
alert('请求出错');
}
});
}
1.2.1后台传输数据格式是一组数据
//电影详情
@RequestMapping("details/{movieId}")
@ResponseBody
public HashMap<String, String> getMovieDetails(@PathVariable String movieId){
Movie movie=movieService.selectMovieById(movie