ajax调用中的数据未传递给控制器​​

时间:2016-03-09 02:02:20

标签: javascript jquery ajax

我在带有jQuery应用程序的Spring MVC中有这个简单的javascript:

        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,为参数map size生成0。我最初使用@RequestParam注释了该方法,但是失败了,我无法弄清楚原因。我删除了它,我发现ajax调用没有发送任何内容。

我尝试过JSON,Javascript Object和(在本例中)一个请求参数字符串。我尝试过和没有传统的。

我在jQuery get函数的回调函数中使用此调用,如下所示:

    $.get(templateUrl).complete(callback);

但为什么没有到我的控制器那里?

UPDATE 如果我将其更改为GET,则会在调用结束时添加参数,就像它们应该的一样,并且一切正常。

更奇怪的是,这是一个函数,之前被调用,它作为POST工作。功能相同。 (当然是不同的URL和数据)但SAME功能。工作一次,然后看起来失败了。有没有像我需要关闭的插座?我在这里抓住稻草。

1 个答案:

答案 0 :(得分:0)

您应该将数据作为键值对传递给控制器​​。不要使用等号。

例如,不,

5

它应该是,

applicationId=977

为ajax请求添加此内容。

applicationId:977