我有點困惑。我正在寫一個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