【发布时间】:2012-04-06 07:44:44
【问题描述】:
这是我的 AJAX 调用:
var dataString = "{existingProject:'"+ $("#existingProject").val() + "',newProjName:'" + $("#newProjName").val()+"'}";
$.ajax({
type: "POST",
url: "manageProjects.html",
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.status + " " + msg.responseText);
$("#grid").trigger("reloadGrid");
},
error: function (errormessage) {
alert(errormessage.status + " " + errormessage.responseText);
}
});
..这是我希望处理请求的 Spring MVC 控制器中的方法签名:
@RequestMapping(value="/manageProjects",produces="application/json",method=RequestMethod.POST)
public StatusResponse manageProjects(
@RequestParam("existingProject") String existingProj,
@RequestParam("newProjName") String newProj,
HttpSession session){
我整天都在修补这个 ajax 调用,但我只是没有发现问题。我尝试过使用带有数据参数的加载,post,并且我尝试过不设置 contentType 和 dataType 并使用它。
错误消息中的 responseText 告诉我该调用在语法上不正确......但不知道为什么......
我错过了一些愚蠢的东西。感谢您的任何见解...
【问题讨论】:
-
dataType 不应该是“json”吗?
-
道歉。我的错字。失败的代码中的“json”。已在 OP 中修复。
-
你试过这样传递参数吗? "existingProject="+ $("#existingProject").val() + "&newProjName=" + $("#newProjName").val() ... 结果一样吗?
-
是的,结果相同。值得一提的是,这些值是相互排斥的。一个永远是“”。问题是 val() 没有返回“”而是返回 null,因此我无法满足所需参数的 MVC 签名?
-
这可能是问题所在,您可能想尝试确保避免发送空值,看看会发生什么
标签: jquery ajax spring model-view-controller