ajax请求Uncaught RangeError: Maximum call stack size exceeded

调试前端代码一直报这个错误:Uncaught RangeError: Maximum call stack size exceeded

代码如下:

var layerindex = layer.load(1, {
                shade: [0.1, '#fff'] //0.1透明度的白色背景
            });
            var featureIds = {"featureId": 0};
        <#if featureId??>
            featureIds["featureId"] = featureId;
            $.ajax({
                url: 'featurecheck',
                type: 'post',
                data: featureIds,
                success: function (result) {
                    layer.close(layerindex);
                    var res = JSON.parse(result);
                    if (res.flag == true && res.msg == "true") {
                        document.getElementById("saveType").style.display = "none";
                        layer.msg("已被特征组关联且可读,可以不存储特征", {time: 2000});
                    } else {
                        $("#save").prop("checked", true);
                        // document.getElementById("saveType").style.display = "block";
                        layer.msg("未被特征组关联,不能取消存储,请选择是", {time: 2000});
                    }
                },
                error: function (result) {
                    layer.close(layerindex);
                    $("#save").prop("checked", true);
                    // $("input([name='save'][value='1'])").attr("checked",true);
                    layer.msg("校验失败,需选择是:" + result.responseText, {time: 4000});
                }
            })
        <#else>
        $("#save").prop("checked", true);
     document.getElementById("saveType").style.display = "block";
     layer.msg("新建特征必须选择存储")
        </#if>

调试发现出现异常部分为ajax请求部分,进入请求就出现卡顿,一段时间之后就会报出这个堆栈溢出的异常。

一直找不到问题所在。后来看别的博客,发现原来ajax请求发送的数据为空时,也会报出这个异常。我就觉得应该是我传递数据出现了问题。

var featureId = $("#featureId").val();
var featureIds = {"featureId":featureId};

将传递的数据,按如下进行定义和传递,终于成功解决问题。

我猜想应该是data定义的类型不对,数据不能成功发送给后台,后台没收到数据,前端就一直发送,如此循环导致堆栈溢出。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值