无法获取到输入的验证码信息

来源:3-5 前后端联调验证整体模块功能

Sunny_Winter

2019-08-26 09:48:27

shopoperation.js
$(function(){
    // 用于店铺注册时候的店铺类别以及区域列表的初始化的URL
    var initUrl = '/o2o/shopadmin/getshopinitinfo';
    // 注册店铺的URL
    var registerShopUrl = '/o2o/shopadmin/registershop';
    // 取得所有二级店铺类别以及区域信息,并分别赋值进类别列表以及区域列表
    getShopInitInfo();
    function getShopInitInfo() {
        $.getJSON(initUrl, function(data) {
            if (data.success) {
                var tempHtml = '';
                var tempAreaHtml = '';
                data.shopCategoryList.map(function(item, index) {
                    tempHtml += '<option data-id="' + item.shopCategoryId
                        + '">' + item.shopCategoryName + '</option>';
                });
                data.areaList.map(function(item, index) {
                    tempAreaHtml += '<option data-id="' + item.areaId + '">'
                        + item.areaName + '</option>';
                });
                $('#shop-category').html(tempHtml);
                $('#area').html(tempAreaHtml);
            }
        });
        $('#submit').click(function () {
            // 创建shop对象
            var shop = {};
            shop.shopName = $('#shop-name').val();
            shop.shopAddr = $('#shop-addr').val();
            shop.phone = $('#shop-phone').val();
            shop.shopDesc = $('#shop-desc').val();
            // 选择选定好的店铺类别
            shop.shopCategory = {
                shopCategory: $('#shop-category').find('option').not(function () {
                    return !this.selected;
                }).data('id')
            };
            // 选择选定好的区域信息
            shop.area = {
                area : $('#area').find('option').not(function () {
                    return !this.selected;
                }).data('id')
            };

            // 获取上传的图片文件流
            var shopImg = $('#shop-img')[0].files[0];
            // 生成表单对象,用于接收参数并传递给后台
            var formData = new FormData();
            // 添加图片流进表单对象里
            formData.append('shopImg', shopImg);
            // 将shop json对象转成字符流保存至表单对象key为shopStr的键值对里
            formData.append('shopStr', JSON.stringify(shop));

            // 获取表单里输入的验证码
            var verifyCodeActual = $('#j_captcha').val();
            if (!verifyCodeActual) {
                // $.toast() 消息提示框
                $.toast('请输入验证码!');
                return;
            }
            formData.append('verifyCodeActual', verifyCodeActual);

            $.ajax({
                url: registerShopUrl,
                type: 'POST',
                data: formData,
                contentType: false,
                processData: false,
                cache: false,
                success : function (data) {
                    if (data.success) {
                        $.toast('提交成功!');
                    } else {
                        $.toast('提交失败!' + data.errMsg);
                    }
                    $('#captcha_img').click();
                }
            });
        });
    }
})

spring-web.xml

http://img.mukewang.com/climg/5d6339190001efd715511277.jpg

ShopManagementController.java

http://img.mukewang.com/climg/5d633965000196c815511277.jpg

网页调试

http://img.mukewang.com/climg/5d633a2300010a1125601390.jpg

然后进入后台

http://img.mukewang.com/climg/5d633a650001912e25601361.jpg

写回答

4回答

好帮手慕阿满

2019-08-26

同学你好,报错提示是未识别的字段shopCategory,和验证码没有关系,另外同学可以在CodeUtil类中,checkVerifyCode()方法中输出一下verifyCodeActual,查看是否获取到验证码并输出了。
http://img.mukewang.com/climg/5d63956e0001f52006980313.jpg

另外问一下同学这里返回了true或者false。如果是true,表示验证码验证通过。

祝:学习愉快~

0

Sunny_Winter

提问者

2019-08-26

http://img.mukewang.com/climg/5d6364f50001122613400934.jpg

这个是直接执行下去的问题

0

Sunny_Winter

提问者

2019-08-26

我发现request当中都是null值

http://img.mukewang.com/climg/5d635ee50001ead615231262.jpg

当继续执行的时候,进入CodeUtil中

http://img.mukewang.com/climg/5d635f4c0001f60915231262.jpg

我觉得应该是文件上传的问题,但是文件上传的内容已经在之前的提问中,部署好了。

请老师解惑。

0

好帮手慕阿满

2019-08-26

同学你好,已经获取到了验证码信息的,问一下同学再执行如下if判断时,是执行了if中的内容,将false赋值个success吗?

http://img.mukewang.com/climg/5d6359120001090905080181.jpg

另外问一下同学的控制台是否有报错。

关于data is not defined的问题,data只在successs:function(data)函数中有效,现在已经执行到了82行,超出了function的范围,所以提示data is not defined是正常的。问一下同学debug执行时,是否执行了function中if(data.success)的代码。

祝:学习愉快~

0

0 学习 · 8263 问题

查看课程