奇怪的错误:未捕获的TypeError:非法调用ajax

Posted

技术标签:

【中文标题】奇怪的错误:未捕获的TypeError:非法调用ajax【英文标题】:Strange error: Uncaught TypeError: Illegal invocation ajax 【发布时间】:2015-08-13 05:53:59 【问题描述】:

更新

问题解决了,看来我是傻了,引用title元素后忘记放.value了。


我已经使用 ajax 几个月了,之前从未遇到过这样的错误。

我正在创建一个 formData 数组并使用 ajax 将其传递给一个 php 脚本,就像我以前做过很多次一样,但是我现在遇到了那个奇怪的错误。

这可能与我的 formData 有关吗?我看不出有什么不同,因为它与我以前的做法没有什么不同。

任何帮助都会很棒,谢谢!

    //This function will add the product and its details to the cart.
    function addToCart(e)
    
        //alert("CLick");
        calculatePrice();

        //Get the product ID from the URL
        var id = getParameterByName('productID');
        alert(id);
        //Get the title.
        var title = document.getElementById('title');
        //Get the qty.
        var qty = document.getElementById('qty').value;         
        //Get the weight.
        var weightList = document.getElementById('weightList');
        var weightText = weightList.options[weightList.selectedIndex].text;
            //alert("Text: " + weightText);
        var weightValue = weightList.options[weightList.selectedIndex].value;
            //alert("Val: " + weightValue);

        formData = "ID" : id, "SRC": "", "Title" : title, "Qty" : qty, "Weight" : weightText, "Totalprice" : totalPrice, "Singularprice" : weightValue, "Action" : "Add";
        $.ajax(
                           
                url: 'manipulateCart.php',
                type: "POST",
                data: formData,
                success: function(data)
                       
                    alert("cc");
                    //document.getElementById('content').innerhtml = "";
                    //$('#content').append(data);   
                ,          
                error: function(xhr,err)
                       
                    alert("Error: " + xhr + " " + err);
                

            );

    

【问题讨论】:

weightTextweightValue 他们会完美吗? 嗨,weightText 返回如下:110g Bag 和 weightValue 返回如下:3.00。会不会和 weightValue 上的 double 值类型有关? 【参考方案1】:

这一行缺少.value

 var title = document.getElementById('title').value;
                                              ^^^^^

【讨论】:

啊,是的,这就是原因,谢谢!我一定是在赶那条线,忘了放它。再次感谢,+1!【参考方案2】:

您正在将 title 变量传递给 formData 对象。此变量保存#title 元素,而不是该元素的值。将.value添加到var title = document.getElementById('title');

结果:

var title = document.getElementById('title').value;.

更多信息:https://***.com/a/11071290/1130234

【讨论】:

以上是关于奇怪的错误:未捕获的TypeError:非法调用ajax的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的 TypeError:Javascript 中的非法调用(地理位置)

Chrome 中的“未捕获的 TypeError:非法调用”

jQuery $.ajax 和 jQuery UI 对话框:未捕获的 TypeError:非法调用?

电子中的奇怪错误。未捕获的异常:TypeError [ERR_INVALID_ARG_TYPE]:“路径”

未捕获的类型错误:非法调用

jquery:未捕获的类型错误:非法调用