我试图通过在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;
});
}
});
答案 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
语句,这将在调试时帮助您。