我有这个代码,但是我可以在调试时看到图像。 我做错了什么? 当我打电话给img src时,Mabe有些感觉?
xmlhttp.open("GET", "//site.xml", false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border='1'>");
var x = xmlDoc.getElementsByTagName("entry");
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write('<a href="' + x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue + '"> <img src=' + '"http//google.com/images/logo.gif"' + 'border="0" width="276" height="110" /></a>');
document.write("</td><td>");
document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
//alert('[1]');
}
//alert('[2]');
document.write("</table>");
答案 0 :(得分:0)
您的代码中存在一些问题:
1-首先,ajax调用是异步的(W3C Reference),因此您的代码不会等到ajax调用完成后才能继续执行。 =&GT;在调用send
方法之前,必须先为onreadystatechange定义一个处理函数。
示例
xmlhttp.onreadystatechange = function(){
/*
* Note this condition (response received and
* request status is OK (HTTP 200 code)
*/
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
//Your code here
document.write("<table border='1'>");
var x = xmlDoc.getElementsByTagName("entry");
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write('<a href="' + x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue + '"> <img src=' + '"http://google.com/images/logo.gif"' + 'border="0" width="276" height="110" /></a>');
document.write("</td><td>");
document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
//alert('[1]');
}
}
}
2-您的ajax通话网址错误//site.xml
。您正尝试访问此网址http(s)://site.xml
,该网址没有任何意义,您的status code
将始终为404(HTTP未找到代码),因此请将您的网址更改为/site.xml
希望有所帮助