js报错Uncaught RangeError: Maximum call stack size exceeded解决方法

js报错Uncaught RangeError: Maximum call stack size exceeded解决方法

错误如下图所示:

Xnip2019-01-03_17-07-37.jpg

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不需要存在。

打赏

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

js报错Uncaught RangeError: Maximum call stack size exceeded解决方法