我有一个Spring MVC中的jQuery应用这种简单的JavaScript:数据在Ajax调用没有传递到控制器
console.log("POST Variables:",postVariables);
$.ajax({
type: "POST",
url: theUrl,
traditional: true,
data: postVariables,
complete: modelCallback,
fail : errorFunction
});
控制台日志这样的:
POST Variables: applicationId=977
这是正确的。我在我的控制器中有:
public HashMap<String, Object> getApplication(HttpServletRequest request) {
String applicationId = (String) request.getParameter("applicationId");
logger.error("ApplicationId:"+applicationId);
Iterator<?> it = request.getParameterMap().keySet().iterator();
logger.error("Begining parameters:"+request.getParameterMap().keySet().size());
这会为String applicationId生成null,并为参数映射大小生成一个0。我原本用@RequestParam注解了方法,但是失败了,我找不到原因。我删除了,我看到ajax调用没有发送任何东西。
我已经尝试过JSON,Javascript对象和(在本例中)一串请求参数。我尝试过,没有传统。
我使用从一个jQuery回调函数里面调用这个函数得到这样的:
$.get(templateUrl).complete(callback);
但是,为什么没有什么让我的控制器?
UPDATE如果我将它更改为GET,那么参数会在调用结束时添加,就像它们应该一切正常一样。
更奇怪的是,这是一个函数,之前被调用,它作为一个POST。功能相同。 (当然不同的URL和数据)但SAME功能。工作一次,然后看起来像失败了。有没有像我需要关闭一些插座?我在这里抓着稻草。
您是否用[HttpPost]注释Controller Action? –