Spring读取formData对象,request.getParameter() 取值为 null

jquery 代码,使用formData对象

var formData = new FormData();
        //formData.append('shopImg', shopImg);
        //formData.append('shopStr', JSON.stringify(shop));
        var verifyCodeActual = $('#j_captcha').val();
        if (!verifyCodeActual) {
            $.toast('请输入验证码!');
            return;
        }
        formData.append("verifyCodeActual", verifyCodeActual);

        $.ajax({
            url : (isEdit ? editShopUrl : registerShopUrl),
            type : 'POST',
            data : formData,
            contentType: "application/x-www-form-urlencoded",
            cache: false,
            processData: false,
            success : function(data) {
                if (data.success) {
                    console.log(data);
                    $.toast('提交成功!');
                    $('#captcha_img').click();
                } else {
                    $.toast('提交失败!');
                    console.log(data);
                    $('#captcha_img').click();
                }
            }
        });

成功post到服务端后,chrome读取到的Form Data
图片描述

在spring中获取 key=verifyCodeActual的值时,出现null
图片描述

图片描述

阅读 6.8k
2 个回答

方法一:

 $.ajax({
        url : url,
        type : 'POST',
        data : formData,
        processData: false,
        contentType: false,
        //contentType: "application/x-www-form-urlencoded",
        cache: false,
        processData: false,
        success : function(data) {
            if (data.success) {
                    console.log(data);
                    $.toast('提交成功!');
                    $('#captcha_img').click();
                } else {
                    $.toast('提交失败!');
                    console.log(data);
                    $('#captcha_img').click();
                }    
        }
    });
springmvc方法参数(MultipartHttpServletRequest request)
request.getParameter("verifyCodeActual");

方法二:

不改ajax请求方法,springmvc方法参数(@RequestParam Map<String,Object> map)自己解析map

不要用formData保存请求数据,直接用一个对象来保存就行。

var data = {"verifyCodeActual":verifyCodeActual};

FormData是上传文件时需要用到的请求格式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题