Bug----Ajax无法接受后台返回值

Ajax无法接受后台返回值


在用Java的SSM框架编写项目时,前端HTML页面采用Ajax向后台服务器发送请求获取目标数据,前端代码如下图所示。

 $.ajax({
             type: "GET",
             url: "/hosregister/list.do",
             data: $("#myForm").serialize(),//主要是分页和多条件参数数据
             dataType:"json",
             success: function(vo){
                 let list =vo.pageInfo.list;
                 let str="";
                 for(let i=0;i<list.length;i++) {
                     let obj = list[i];
                     let hosR_id = obj.hosR_id == null ? '' : obj.hosR_id;
                     let d_name = '';
                     let hosR_date = obj.hosR_date == null ? '' : obj.hosR_date;
                     let d_keshi = '';
                     let hosR_state = obj.hosR_state == 0 ? '已挂号' : (obj.hosR_state == 1 ? '已住院' : (obj.hosR_state == 2 ? '已出院' : '已退号'));
                     let btnStr = "";
                     if (obj.hosR_state == 0) {
                         btnStr = '<a href="look.html"><详情></详情>>>></a>&nbsp;&nbsp;&nbsp;<a href="edit.html">更改</a>&nbsp;&nbsp;&nbsp;<a href="javascript:alert("退号成功");">退号</a>';
                     } else if (obj.hosR_state == 1) {
                         btnStr = '<a href="look.html">详情>>></a>&nbsp;&nbsp;&nbsp;<a href="edit.html">更改</a>';
                     } else {
                         btnStr = '<a href="look.html">详情>>></a>';
                     }
                     str += '<tr>' +
                         '             <td style="vertical-align:middle;"><input type="checkbox" name="check" value="1"></td>' +
                         '            <td style="vertical-align:middle;">' + hosR_id + '</td>' +
                         '            <td style="vertical-align:middle;">' + d_name + '</td>' +
                         '            <td style="vertical-align:middle;">' + hosR_date + '</td>' +
                         '            <td style="vertical-align:middle;">' + d_keshi + '</td>' +
                         '            <td style="vertical-align:middle;">' + hosR_state + '</td>' +
                         '            <td style="vertical-align:middle;">' + btnStr + '</td>' +
                         '</tr>';
                     alert(str);
                 }
                alert(str);
                 $("#tboby").html(str);
                 //填充分页数据
                 //fillPageData(vo.pageInfo);
             }
         })};

每次运行总是报错,说前端无法接受后台发送的数据,如下图所示。
在这里插入图片描述

我反复调试后台发现后台能发送到前台目标数据,但不知道什么原因前端Ajax无法接受后台发送的数据,前端该配置的环境都没问题!后面我查找了很多资料,发现问题很简单,我竟然花了大半天时间查找,真是相见恨晚,特意写个博客记录一下,希望各位道友能够借鉴,少走弯路!
问题出在button按钮,button按钮放在form标签内就不能接收到数据,放到form标签外就没事,就这么隐蔽的一个错误啊,害得我找了好久!后来又上网查了一下,才知道button按钮放在form内要是不写type属性则默认为submit类型,但我想要的不是让它提交整个表单啊,因此只需设置属性type='button’即可。

<form>
<table>
        <td width="10%" class="tableleft">挂号时间:</td>
		  <td colspan="5">
			<input type="text" name="hosR_dateStart" value=""/>&nbsp;&nbsp;<input type="text" name="hosR_dateEnd" value=""/>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <button  class="btn btn-primary" type="button" id="search">查询</button>
            <!--注意type = "button", button按钮放在form内要是不写type属性则默认为submit类型,无法接受后台的数据-->
            <button  class="btn btn-primary" type="button">清空</button>
        </td>
    </tr>
    </table>
</form>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值