我有一个页面,我从ajax请求中提取一些html,然后将其插入到div中。 html正确地进入div,除了图像没有显示,但它的替代文字是。这是html:
<div class='fltright'><img src='images/esl.jpg' alt="English as a Second Language"/></div><!-- end fltright --><p><span class='large'>Lorem ipsum dolor sit amet,</span> consectetur adipiscing elit. Cras tempor semper tortor. </p>
是否有任何理由在替代文字出现时图片不会显示?
AJAX代码:
function getData(fileName){
fileLoc = encodeURI("assets/"+fileName+".html")
//alert(fileLoc);
request.onreadystatechange = processData;
request.open("GET",fileLoc, false);
request.send();
//alert(request.readyState);
//alert(response);
//alert(request.status);
}
function processData(){
if (request.readyState==4){
if (request.status==200){
try{
response = request.responseText;
document.getElementsByClassName('content')[0].innerHTML = response;
} catch(e){
alert("Error: " +e.description);
}
}
else{
alert("An error has occured making the request");
}
}
}
答案 0 :(得分:2)
我会检查这些图像实际上是否可见。检查的一个好方法是右键单击并“查看图像...”。然后会要求您的浏览器专门请求该图像。
如果您在此服务器上找不到Not Found
请求的图像images / esl.jpg,那么您的网址不正确。
如果您获得Forbidden
您无权访问此服务器上的images / esl.jpg。那么这是一个权限问题。正如Endophage所说,您将需要为Apache进程设置正确的文件和目录权限,以便能够查看该图像。
答案 1 :(得分:0)
通常在使用AJAX时,您会忘记图像与文档所在位置的关系。尝试从根位置引用图像,如下所示..
../ images / esl.jpg
答案 2 :(得分:0)
我觉得图像实际上是资产/ images / esl.jpg,而不是images / esl.jpg
考虑您的网页所在位置和您正在抓取的网页之间的区别......