js报错Uncaught RangeError: Maximum call stack size exceeded解决方法
错误如下图所示:
Uncaught RangeError: Maximum call stack size exceeded
这个错误,有可能有两个原因:
– 1、用jquery写ajax的时候,参数传了对象(本来应该传字符串的)
– 2、递归没有结束条件导致死循环。
以下是演示jquery ajax参数传了对象导致的错误:
<html>
<head>
<title>Uncaught RangeError: Maximum call stack size exceeded</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
</head>
<body>
<form id="login-form">
<input type="text" placeholder="please input username" name="username"><br>
<input type="password" placeholder="please input password" name="password"><br>
<input type="button" name="submit" value="Submit">
</form>
<script>
$('#login-form input[name="submit"]').on('click', function (){
//错误演示
var username = $('#login-form input[name="username"]');
//正确
// var username = $('#login-form input[name="username"]').val();
var password = $('#login-form input[name="password"]').val();
$.ajax({
type:'post',
url:'/path/to/login.php',
data:{
username: username,
password: password,
},
success:function(response){
console.log(response)
}
});
});
</script>
</body>
</html>
把代码粘贴到一个html文件上,点击submit按钮,浏览器会卡一会,然后就会出现这个错误,这里只是重现js错误,所以/path/to/login.php
不需要存在。
觉得文章对你有用的话鼓励一下我吧