windbag_
windbag_
采纳率20%
2018-07-13 07:44 阅读 3.2k

AJAX 提交 FormData 报data undefined

10

直接上代码js里的
$('#submit').click(function(){
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);
formData.append('shopStr',JSON.stringify(shop));
var verifyCodeActual = $('#j_captcha').val();
if(!verifyCodeActual){
$.toast('请输入验证码!');
return;
}
formData.append('verifyCodeActual',verifyCodeActual);
alert(formData.get('shopStr'));
$.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();
}
});
});
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

12条回答 默认 最新

  • 已采纳
    qq_20750623 qq_20750623 2018-07-13 07:57

    后台没返回吗 if前面console.log(data) 看看

    点赞 1 评论 复制链接分享
  • qq_37524684 子幽 2018-07-13 08:13

    success里面先不要判断,先打印你的data看看到底是什么格式

    点赞 1 评论 复制链接分享
  • id_no_chinese smallerCoder 2018-07-13 08:24

    你这好像是Post请求,想保存某些信息。但是content-type设置成false.后台能接收到你传过去的数据么?
    你调试,代码没有走进 success吧,没走进去当然是undefined,error也没写,就算ajax走错了,你也不知道

    点赞 1 评论 复制链接分享
  • zhuifengzhifeng zhuifengzhifeng 2018-07-13 08:28

    success里面先不要判断,先打印你的data看看到底是什么

    点赞 1 评论 复制链接分享
  • jslang 天际的海浪 2018-07-13 07:57

    设置ajax的dataType参数试试

    点赞 评论 复制链接分享
  • jslang 天际的海浪 2018-07-13 07:59

    设置ajax的dataType参数为"json"试试

    点赞 评论 复制链接分享
  • qq_24466549 qq_24466549 2018-07-13 08:14

    data 的数据格式没有确定

    点赞 评论 复制链接分享
  • ambit_tsai ambit_tsai-微信 2018-07-13 08:19

    既然有用打开调试工具,可以切到Network去看报文,看请求的返回信息。
    另外,你这里只设置success事件,设置一下失败的事件,应该就能有信息输出了。

    点赞 评论 复制链接分享
  • rocky_zhangshaojia rocky_zhangshaojia 2018-07-13 08:47

    数据类型要以 json类型传输 设置ajax的dataType参数为"json"

    点赞 评论 复制链接分享
  • bb9527 bb9527 2018-07-13 09:01

    ajax datatype 类型 , html、json、jsonp、script或者text 你的类型改一下,对应的
    看看后台action 返回结果类型是否跟dataType匹配

    点赞 评论 复制链接分享
  • cswfxlove1 cswfxlove1 2018-07-13 09:30

    先调试一下,看看是不是数据类型不正确

    点赞 评论 复制链接分享
  • qq_27848369 hot2dog 2018-07-13 09:32

    把 contentType 设置为 : application/json; charset=utf-8

    点赞 评论 复制链接分享

相关推荐