首页 > 解决方案 > 为什么 request.getParameter("") 使用 jquery formdata 返回 null

问题描述

当我尝试verifyCodeActual在服务器上检索我的参数时,结果是null.

String code = request.getParameter("verifyCodeActual"); // This is null

但正如您在 chrome 控制台数据中看到的那样,我在正文中发布了这个参数:

chrome 控制台(数据表单)

以下是服务器端 java 代码的相关部分:

服务器端java代码的相关部分

这是 JS ajax 查询:

    var formData = new FormData();

    var verifyCodeActual = $('#j_captcha').val();

    formData.append("verifyCodeActual", verifyCodeActual);

    $.ajax({
        url : (isEdit ? editShopUrl : registerShopUrl),
        type : 'POST',
        data : formData,
        contentType: "application/x-www-form-urlencoded",
        cache: false,
        processData: false,
        success ...
        }
    });

标签: javaspringservletsrequest

解决方案


这将帮助你

客户

$.ajax({
    url : (isEdit ? editShopUrl : registerShopUrl),
    type : 'POST',
    data : {
        verifyCodeActual : $('#j_captcha').val()
    },
    contentType: "application/x-www-form-urlencoded",
    cache: false,
    processData: false,
    success ...
    }
});

控制器

@RequestMapping(value = "/modifyshop", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> modifyShop(@RequestBody Object verifyCodeActual) throws Exception {

        System.out.println(verifyCodeActual);
}

推荐阅读