我在springboot应用程序中有一个控制器,它在正常用例中运行得非常好,通过html form
调用它。那样:
<form action="/controllerURL" method="post" enctype="multipart/form-data" id="uploadForm">
但对于一个用例,我必须通过Ajax进行调用:
$.ajax({
url: "/controllerURL",
type: "POST",
data: new FormData($("#uploadForm")[0]),
processData: false,
contentType: false,
dataType: "text/plain;charset=UTF-8",
cache: false,
success: function () {
// Handle upload success
// ...
},
error: function () {
// Handle upload error
// ...
}
});
}
此通话仅部分有效。控制器中的正常执行代码有效。控制器代码:
@RequestMapping(value = "/controllerURL", method = RequestMethod.POST)
public String someMethod(Model model, RedirectAttributes redirectAttributes,
@RequestParam("editorText") String editorText) {
//Some code that is executed propperly
redirectAttributes.addFlashAttribute("saveSuccess", true);
return "redirect:/editor";
}
现在的问题是,当通过上述ajax方法进行调用时,没有执行重定向。我在想我是否可以在成功/错误方法中做一些特别的事情,但却无法想出一些东西。我需要执行重定向以便加载新页面并根据控制器中代码的结果显示内容(这也是redirectAttributes的原因)。
有没有人知道如何将行为更改为与通过HTML表单调用相同?