Uncaught TypeError: Illegal invocation问题的解决

先来看具体的异常信息:

jquery-1.11.1.min.js:4 Uncaught TypeError: Illegal invocation
    at e (jquery-1.11.1.min.js:4)
    at Vc (jquery-1.11.1.min.js:4)
    at Vc (jquery-1.11.1.min.js:4)
    at Vc (jquery-1.11.1.min.js:4)
    at Vc (jquery-1.11.1.min.js:4)
    at Function.m.param (jquery-1.11.1.min.js:4)
    at Function.ajax (jquery-1.11.1.min.js:4)
    at severCheck (toActiveDuns:302)
    at HTMLInputElement.onblur (VM122 toActiveDuns:99)

再来看源码:

function severCheck(){
         if(!checkArea()) return;
        var phone=$('#phone').val();
        var ssuppliercode=$('#ssuppliercode').val();
        var code=$('#code').val();  //识别码
        var name=$('#name').val();
        var password=$('#password').val();
        var randCode=$('#randCode').val(); //页面随机验证码

    //第一步:定义json格式数据
    var postData = {
                "ssuppliercode" : ssuppliercode,
                "code" : code,
                "name" : name,
                "province" : cmbProvince,
                "city" : cmbCity,
                "area" :cmbArea,
                "phone" : phone,
                "password" : password,
                "randCode" : randCode
          };
        //检验输入的数据是否符合规范,不符合不予进入下一步操作

           $.ajax({
            type: "POST",
            url: '<%=basePath%>ytj1001Page/toSendYZM',
            data: postData,  //{"phone":phone,"code":randCode}
            dataType:'json',  //返回的数据为json,此处要用json接收
            cache: false,
            success: function(data){}
        调试时,控制台报Uncaught TypeError: Illegal invocation,经过排查,原来是ajax请求时,非法调用。

        具体是这3个值在上面没有声明: 
               "province" : cmbProvince,
               "city" : cmbCity,
               "area" :cmbArea,
找到根源,就明白异常产生的原因了:变量未声明,就直接调用,就会报以上异常。如此一来,解决办法就不言自明了,只需上调用前,声明赋值即可,注意大小写要一致。

猜你喜欢

转载自blog.csdn.net/shenxiaomo1688/article/details/81557630