在进行ajax调用时,我收到“TypeError:e is undefined”

时间:2013-08-18 19:45:05

标签: javascript jquery ajax file-get-contents

我试图通过在PHP脚本中使用file_get_contents和在前端使用ajax来显示网站的内容。我可以很好地显示整个页面,但如果我尝试仅在页面上显示一定数量的图像,则会收到“TypeError:e is undefined”错误。这是我的PHP:

<?php
    $url= 'https://twitter.com/twitter';
    if($url!="")
        echo file_get_contents($url);
?>

这是我的jQuery:

    $.ajax({
    url : "twitter.php",
    dataType: "html",
    success : function (data) {
        console.log("loaded");
        //$(data).appendTo('#images');
        $.each(data.items, function(i,item) {
            $("<img />").attr("src", item.media.m).appendTo('#images');
            if (i == 5) return false;
        });
    }
});

2 个答案:

答案 0 :(得分:0)

我认为这里的问题是data.items将是未定义的。我猜测data是字符串类型,因为你期待HTML回来。因此,您将接收网页的HTML,您必须自己解析。

答案 1 :(得分:0)

data是一个HTML字符串,使用jQ迭代它(就像一个DOM树),你必须调用jQ构造函数(或init方法)。您尝试将其附加到当前dom时实际执行的操作:

  $(data).appendTo('#images');
// \==>$() is a function call, returns a jQ instance
//         When passing a markup string, jQ will parse it for you

因此,循环应如下所示:

$.each($(data), function(){});

并且,请尝试添加几个console.log语句,这将在调试时帮助您。