前后端联调问题

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

_烟雨行舟_

2019-04-28

js代码:
		// 提交按钮的事件响应,分别对店铺注册和编辑操作做不同响应
	    $('#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 =  {
			shopCategoryId : $('#shop-category').find('option').not(function() 
					{
			          return !this.selected;
					}).data('id')
							
		    };
		     //选择选定好的区域信息
			shop.area= {
			areaId:$('#shop-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('请输入验证码!');
				return;
			}
			formData.append('verifyCodeActual', verifyCodeActual);
			// 将数据提交至后台处理相关操作
			$.ajax
			({
			  url:registerShopUrl,	//发送请求的 URL
			  type:'POST',//请求的类型为POST
			  data:formData,//发送到服务器的数据是表单对象
			  contentType:false,//数据到服务器时所使用的内容类型
			  processData:false,//通过请求发送的数据不转换为查询字符串
			  cache:false,//浏览器不缓存被请求页面
			  success:function(data) //success指的是请求并成功返回信息,弹出对应消息提示
			  {
				  if(data.success)
				  {
					 $.toast('提交成功!');
					 
				  }
				  else 
				  {
					  $.toast('提交失败!'+data.errMsg);
				  }
				  //每次点击提交按钮后,自动更换验证码
				  $('#captcha_img').click();
			  }
					
			});
			
		});

在前端单步调试的时候,前端取某些值;为啥报这样的错误呀??
![![图片描述
图片描述在这里输入代码图片描述
图片描述

写回答

2回答

_烟雨行舟_

提问者

2019-04-30

好的,谢谢老师

0
0

翔仔

2019-04-29

同学好,areaId shopCategoryId没有被定义,需要你看看是不是后端没有返回区域以及店铺类别列表,如果返回了,看看前端能否接收到。

0
0

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程