【发布时间】:2017-10-26 09:20:09
【问题描述】:
我有一个可以转换为对象的表单。我想将该对象传递到服务器上,一个 GET ajax 请求工作正常,但该对象在 java 方法中为空,然后我执行相同的请求但一个 POST 请求,它显示错误 404。不知道我做错了什么或者是什么,遵循了许多示例,但它们似乎都不起作用。
获取请求
(Ajax 调用)
$.ajax({
type: "GET",
url: "/pp/portal/" + businessId64 + "/saveMedicalQuestionnaire",
contentType: 'application/json',
dataType: 'json',
data: { medicalHistoryDTO : medicalHistoryDTO },
success: function(data) {
console.log(data);
}
});
(对象 medicalHistoryDTO)
(Java 方法)
@RequestMapping(value="/*/saveMedicalQuestionnaire", method = RequestMethod.GET)
public @ResponseBody String postEditMedical(MedicalHistoryDTO medicalHistoryDTO)
{
System.out.println("COMMON CONTROLLER POSTEDITMEDICAL SAVE MEDICAL QUESTIONNAIRE");
System.out.println(medicalHistoryDTO);
return "WORKING FINE";
}
(Eclipse 控制台)
COMMON CONTROLLER POSTEDITMEDICAL SAVE MEDICAL QUESTIONNAIRE
MedicalHistoryDTO [list=null, medicalHistorySignature=null]
发布请求
(Ajax 调用)
$.ajax({
type: "POST",
url: "/pp/portal/" + businessId64 + "/saveMedicalQuestionnaire",
contentType: 'application/json',
dataType: 'json',
data: { medicalHistoryDTO : medicalHistoryDTO },
success: function(data) {
console.log(data);
}
});
(Java 方法)
@RequestMapping(value="/*/saveMedicalQuestionnaire", method = RequestMethod.POST)
public @ResponseBody String postEditMedical(MedicalHistoryDTO medicalHistoryDTO)
{
System.out.println("COMMON CONTROLLER POSTEDITMEDICAL SAVE MEDICAL QUESTIONNAIRE");
System.out.println(medicalHistoryDTO);
return "WORKING FINE";
}
(浏览器控制台)
【问题讨论】:
-
尝试更严格地指定路径
value="/path/saveMedicalQuestionnaire"而不是value="/*/saveMedicalQuestionnaire" -
检查boraji.com/spring-4-mvc-jquery-ajax-form-submit-example,我认为您发送的表单不是您的控制器方法所期望的格式
标签: java jquery ajax jsp spring-mvc