我有点困惑。我正在写一个MVC应用程序,有一个简单的控制器是这样的:Ajax调用Spring MVC控制器重定向页面而不是返回值
@Controller
public class ProfileController {
final String DEFAULT_MALE_AVATAR = "../resources/graphics/avatarMan.PNG";
final String DEAULT_FEMALE_AVATAR = "../resources/graphics/avatarWoman.PNG";
@Autowired
UserService userService;
@RequestMapping(value = "/profile", method = RequestMethod.GET)
public String index() {
return "user/profile";
}
@RequestMapping(value = "profile/getavatar", method = RequestMethod.GET)
public @ResponseBody String getLoggedUserAvatar() {
String userMail = SecurityContextHolder.getContext()
.getAuthentication().getName();
User loggedUser;
if (userMail != null) {
loggedUser = userService.findUserByEmail(userMail);
return loggedUser.getAvatar();
} else {
return DEFAULT_MALE_AVATAR;
}
}
我也在我的身体html标记了调用“的onload”一个简单的js文件,而进入/型材断面。
function init() {
var url = "profile/getavatar";
$.ajax({
url : url
}).then(function(data) {
avatarLink = data;
loadAvatar(avatarLink);
});
function loadAvatar(avatarLink){
$("#userAvatar").attr("src", avatarLink);
}
}
而对于一些奇怪的原因,我得到ridirected为“个人资料/ getavatar”和页面包含()的返回getLoggedUserAvatar价值的文本。有趣的是我也有其他控制器的其他控制器几乎相同的JS文件和控制器 - 他们的工作就像一个魅力。
我错过了什么?
让我知道它是否有帮助? – minion 2015-03-20 01:50:17