前端测试报错,代码检查了没问题,百度了一下发现有个人也遇到这个问题

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

Cris_hu

2018-04-19

我遇到的问题和这个链接类似https://q.cnblogs.com/q/64741/,是谷歌的zepto错误,错误发生在ajax里:

$.ajax({

url:registerShopUrl,

type:'POST',

data:formData,

contentType:false,

processDate:false,

cache:false,

success:function(data){

if(data.success){

$.toast('提交成功!');

}else{

$.toast('提交失败'+ data.errMsg);

}

$('#captcha_img').click();

}

});

执行到ajax随即出错,错误信息 Uncaught TypeError: Illegal invocation zepto.min.js:2

写回答

2回答

翔仔

2018-04-19

克里斯同学,我们找问题得先从自己这块找起,特别是遇到zepto之类的第三方插件报错,基本99%情况都是自己写的不符合他们的规范,视频里面也是没有错误的,程序说一是一

	// 提交按钮的事件响应,分别对店铺注册和编辑操作做不同响应
	$('#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 : $('#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,
			type : 'POST',
			data : formData,
			contentType : false,
			processData : false,
			cache : false,
			success : function(data) {
				if (data.success) {
					$.toast('提交成功!');
				} else {
					$.toast('提交失败!' + data.errMsg);
				}
				// 点击验证码图片的时候,注册码会改变
				$('#captcha_img').click();
			}
		});
	});

html里

	<script type='text/javascript'
		src='//g.alicdn.com/sj/lib/zepto/zepto.min.js' charset='utf-8'></script>
	<script type='text/javascript'
		src='//g.alicdn.com/msui/sm/0.6.2/js/sm.min.js' charset='utf-8'></script>
	<script type='text/javascript'
		src='//g.alicdn.com/msui/sm/0.6.2/js/sm-extend.min.js' charset='utf-8'></script>
	<script type='text/javascript' src='../resources/js/common/common.js'
		charset='utf-8'></script>
	<script type='text/javascript'
		src='../resources/js/shop/shopoperation.js' charset='utf-8'></script>

同学可以先行比较一下,或者复制粘贴,解决了就和原来对比下,看看错在哪里。平时白天我都在上班,有什么问题可以再群里问问同学

0
7
翔仔
回复
Cris_hu
学到就是赚到啊,虽然过程狠痛苦
2018-04-20
共7条回复

Cris_hu

提问者

2018-04-19

$('#submit').click(function()

{

var shop={};

shop.shopName=$('#shop-name').val();

shop.shopAddr=$('#shop-addr').val();

shop.phone=$('#shop-phone').val();

shop.shopInfo=$('#shop-info').val();

shop.shopCategory={

shopCategoryId:$('#shop-category').find('option').not(function()

{

return !this.selected;

}).data('id')

};

shop.area={

areaId:$('#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);

formData.append('shopStr',JSON.stringify(shop));

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

if(!varifyCodeActual){

$.toast('请输入验证码!');

return

}

formData.append('varifyCodeActual',varifyCodeActual);

$.ajax({

url:registerShopUrl,

type:'POST',

data:formData,

contentType:false,

processDate:false,

cache:false,

success:function(data){

if(data.success){

$.toast('提交成功!');

}else{

$.toast('提交失败'+ data.errMsg);

}

$('#captcha_img').click();

}

});

});



0
0

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

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

5129 学习 · 8152 问题

查看课程