未捕获的类型错误:无法读取未定义的属性“获取”

Posted

技术标签:

【中文标题】未捕获的类型错误:无法读取未定义的属性“获取”【英文标题】:Uncaught TypeError: Cannot read property 'get' of undefined 【发布时间】:2014-06-26 22:32:13 【问题描述】:

当我尝试从自己服务器上的文件中获取响应时,为什么会出现此错误?

$.get("http://www.example.com/user.php?q=" + client + "", function(response)  

if(response == "invalid")
console.log("invalid login");       

    return;

顺便说一句,代码中已经提到了字符串客户端。

并且包含 jquery。

http://i.gyazo.com/693e6633d211ab6da79598e75c6dde58.png

【问题讨论】:

您的文档中是否包含 jQuery 脚本? 如果你没有正确包含 jQuery,你会得到这个错误。请先阅读教程:learn.jquery.com/about-jquery/how-jquery-works. 你是否包含了jquery api??? 是的,包括在内。嗯 @crisbeto 如果 $ 未定义,这将无济于事。 【参考方案1】:

我认为这会奏效:

$.get("http://www.example.com/user.php?q=" + client, function(response)  
    if(response == "invalid")
       console.log("invalid login"); 
       return;
          


);

【讨论】:

如果$ 未定义,请解释这有什么帮助? Jquery 文件应该被正确包含进来。 这不是您在回答中建议的内容。这就是OP的问题所在。您的回答并不能解决 OP 的问题。【参考方案2】:

我已经解决了这样的问题(我已经异步加载了 jquery,所以我检查是否已定义,然后得到一个 css ......等等。)

<script id="jquery" type='text/javascript' async defer src='//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js?ver=1.8.3'></script>
<script type='text/javascript'>
    (function checkJQuery()
        if ('undefined' == typeof window.jQuery) 
            setTimeout(function()checkJQuery();,250);
        else
            var css = "url-of-my-css";
            console.log("my css is loading");
            window.jQuery.get( css, function( data ) 
                $('<style>'+ data +'</style>').appendTo(document.getElementsByTagName('head')[0]);
                console.log("css loaded");
            );

            var js = document.createElement('script'); 
            js.type = 'text/javascript';
            js.async = 'async';
            js.defer = 'defer';
            js.src = 'url-of-my-js';
            var node = document.getElementsByTagName('script')[1];
            node.parentNode.insertBefore(js, node);
        
    )();
</script>

将 $.get 更改为 window.JQuery.get

希望对您有所帮助。

【讨论】:

【参考方案3】:

我在 asp.net mvc 5 中遇到过这样的问题。

<script>    
function OpenBulkUpload()            
$.get("/AdminPanel/BulkUpload/Index").then(
function (r) 
$("<div id='DivBulkUpload'></div>").html(r).dialog(

width: 'auto', height: 'auto', modal: true, title: "Upload Pictures",
close: function ()  $('#DivBulkUpload').remove(); ); 
);

</script>

show Uncaught TypeError: Cannot read property 'get' of undefined in debuger browser.

解决方案:

1.通过在包管理器控制台中添加jquery UI

PM> install-package Jquery.UI.combined

2.在cshtml页面顶部添加脚本和链接

<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery-ui-1.11.4.js"></script>
<link href="~/Content/themes/base/all.css" rel="stylesheet" />

我的问题解决了。

【讨论】:

以上是关于未捕获的类型错误:无法读取未定义的属性“获取”的主要内容,如果未能解决你的问题,请参考以下文章

获取未捕获的类型错误:无法读取未定义的属性“toLowerCase”[关闭]

未捕获的类型错误:无法读取未定义错误的属性“顶部”

未捕获的类型错误:无法读取未定义的属性“名称”

未捕获的类型错误:无法读取未定义的属性“长度”

jsonp 请求中的“未捕获的类型错误:无法读取未定义的属性‘toLowerCase’”

我得到一个未被捕获的类型错误,在尝试获取div时无法读取未定义的属性长度