【问题标题】:ajax RangeError: Maximum call stack size exceededajax RangeError:超出最大调用堆栈大小
【发布时间】:2019-03-28 07:36:54
【问题描述】:

我的jsp

for (int i =0;i<bookings.size();i++){
    %>  
<table>
  <tr>
    <td rowspan="3" id="name" ><%=bookings.get(i).getname()%></td>
    <td id="type"><%=bookings.get(i).gettype()%></td>
    <td rowspan="3"><button type="button" onclick="cancelPost(this)">Cancel</button>
            <p style="color:red;">confirm</p></td>
  </tr>
  <tr>
    <td>
    <span id="from"><%=bookings.get(i).from()%></span>    
     <span id="to"><%=bookings.get(i).to()%></span>
         </td>
  </tr>
  <tr>
    <td>SSN: <span id="Ssn"><%=bookings.get(i).getssn()%></span></td>
  </tr>

我的 js

function cancelPost(x){
var rowIndex = $(x).closest('table').index(); 
var type = $(x).closest('table').find("#type").text();
type = type.replace(/\s/g, '');
var from = $(x).closest('table').find("#from").text();
var to = $(x).closest('table').find("#to").text();
var Ssn = $(x).closest('table').find("#Ssn").text();
var name = $(x).closest('table').find("#name").text();
name = name.replace(/\s/g, '');
alert(rowIndex+";"+type+";"+from+";"+to+";"+Ssn+";"+name);
$.ajax({
    url:"/deleteBookingServlet",
    type:"post",
    data:{
        name:name,
        Ssn: Ssn,
        from: from,
        to: to,
        type:type
    },
    success:function(result,testStatus){
        if(result=="true"){
            alert("success");
        }else{
            alert("fail");
        }
    },
error:function(xhr,errorMessage,e){
    alert(xhr.status);
}
});
}

警报窗口显示所有正确信息,这意味着这些变量实际上不是未定义的。然后在我关闭警报窗口后卡住了。我的其他 jsp 文件中的类似 ajax 代码运行良好,但除了这个。我真的不知道为什么。有人可以帮我吗。

【问题讨论】:

  • 错误提示某处出现无限循环!
  • @MICKY,如果相同的代码在其他 jsps 中工作,那么问题可能出在 servlet 代码中。将您的 /deleteBookingServlet servlet 代码添加到问题中。
  • 对您的 js 代码的一个建议,而不是多次调用 $(x).closest('table') 为其分配一个变量并使用该变量来获取元素值。它将帮助您减少对各个表对象的迭代次数查找。例如:var tbl = $(x).closest('table'); var from = tbl.find("#from").text(); ....

标签: javascript html ajax jsp servlets


【解决方案1】:

servlet 有问题,我在此处发布的 ajax 代码是正确的。

【讨论】:

    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 2016-10-19
    • 2021-05-30
    • 2021-07-11
    • 2019-07-05
    • 2015-04-26
    相关资源
    最近更新 更多