我找到了解决方案:我添加了@Responsebody 并解析了 Ajax 成功接收到的数据。这是我的代码:
@RequestMapping(value = "/sendMessage" ,method = RequestMethod.POST)
@ResponseBody
public String sendMessage(HttpServletRequest request, HttpServletResponse response, @RequestBody String payload) throws JSONException, IOException {
JSONObject jRespObj = new JSONObject();
try {
System.out.println("Welcome");
JSONObject jPayload = new JSONObject(payload);
System.out.println("jobj : "+jPayload);
String message = jPayload.getString("message");
InputStream inputStream = UserController.class.getResourceAsStream("/Contactusrequest.htm");
StringWriter writer = new StringWriter();
try {
IOUtils.copy(inputStream, writer);
} catch (IOException e) {
e.printStackTrace();
}
HttpSession session = request.getSession(true);
String from = (String) session.getAttribute("email");
String to ="xyz@electronosolutions.com";
String emailContent = writer.toString();
emailContent = emailContent.replace("replaceMeFromEmail",from);
emailContent = emailContent.replace("replaceMeToEmail", to);
emailContent = emailContent.replace("replaceMeReason", message);
emailClient.sendMail("", to, null, "Contact Us Request", emailContent);
jRespObj.put("message", "Mail sent succesfully");
} catch (Exception ex) {
ex.printStackTrace();
}
return jRespObj.toString();
}
阿贾克斯方法:
function sendMessage() {
console.log("page load");
//$("#sendMessage").submit(function(e){
// e.preventDefault();
var reqJson = {};
reqJson.message = $("#message").val();
console.log(reqJson.message+" jhgczjdhgbdzjvh");
$.ajax(
{
url : "sendMessage/",
type: "POST",
data : JSON.stringify(reqJson),
contentType: "application/json",
success:function(data)
{
var msg = JSON.parse(data);
console.log(msg);
UIkit.notify('Clear ' + msg.message, {
pos : 'top-center',
status:'success',
timeout : 2000
});
setTimeout(function(){ location.reload(); }, 2000);
},
error: function(data)
{
UIkit.notify('Clear ' + "Mail not sent", {
pos : 'top-center',
status:'warning',
timeout : 6000
});
}
});
}