Ajax新手问题,responseText取不到值,高手帮忙看看
<script>varxmlhttp;functionsetxmlhttp(){alert("0");if(window.ActiveXobject){alert("1"...
<script>
var xmlhttp;
function setxmlhttp()
{
alert("0");
if(window.ActiveXobject)
{
alert("1");
xmlhttp=new ActiveXobject('Microsoft.XMLHTTP');
alert("2");
}
else if(window.XMLHttpRequest)
{
alert("3");
xmlhttp=new XMLHttpRequest();
alert("4");
}
}
function xmlrequest(xx)
{
setxmlhttp();
alert(xmlhttp);
alert(xx);
xmlhttp.open("GET",xx,true);
alert("5");
xmlhttp.onreadsatechange=indiv();
alert("5.1");
xmlhttp.send(null);
}
function indiv()
{
alert("6");
document.getElementById("div").innerHTML=xmlhttp.responseText;
alert("7");
alert(xmlhttp.responseText);
}
</script>
<a href="#" onclick="xmlrequest('a.html')">a</a>
<a href="#" onclick="xmlrequest('b.html')">b</a>
<div id="div"></div>
最后xmlhttp.responseText打印出来时空值~~~~~~我是不是哪写错了 展开
var xmlhttp;
function setxmlhttp()
{
alert("0");
if(window.ActiveXobject)
{
alert("1");
xmlhttp=new ActiveXobject('Microsoft.XMLHTTP');
alert("2");
}
else if(window.XMLHttpRequest)
{
alert("3");
xmlhttp=new XMLHttpRequest();
alert("4");
}
}
function xmlrequest(xx)
{
setxmlhttp();
alert(xmlhttp);
alert(xx);
xmlhttp.open("GET",xx,true);
alert("5");
xmlhttp.onreadsatechange=indiv();
alert("5.1");
xmlhttp.send(null);
}
function indiv()
{
alert("6");
document.getElementById("div").innerHTML=xmlhttp.responseText;
alert("7");
alert(xmlhttp.responseText);
}
</script>
<a href="#" onclick="xmlrequest('a.html')">a</a>
<a href="#" onclick="xmlrequest('b.html')">b</a>
<div id="div"></div>
最后xmlhttp.responseText打印出来时空值~~~~~~我是不是哪写错了 展开
1个回答
展开全部
你语句都写错了。
xmlhttp.onreadsatechange=indiv();应该是:xmlhttp.onreadystatechange=indiv;
另外“indiv”回调函数,处理时是需要判断ajax是否交换完毕,而你却没判断交换是否完成就调用数据,这是没用的。
========以下是修改后的====以下代码在IE 8.0下测试通过====
<script>
var xmlhttp;
function setxmlhttp()
{
alert("0");
if(window.ActiveXobject)
{
alert("1");
xmlhttp=new ActiveXobject('Microsoft.XMLHTTP');
alert("2");
}
else if(window.XMLHttpRequest)
{
alert("3");
xmlhttp=new XMLHttpRequest();
alert("4");
}
}
function xmlrequest(xx)
{
setxmlhttp();
alert(xmlhttp);
xmlhttp.open("GET",xx,true);
xmlhttp.onreadystatechange=indiv;
xmlhttp.send(null);
document.getElementById("ts").innerHTML="正在获取数据,请稍候...";
}
function indiv()
{
if(xmlhttp.readyState==4){
if(xmlhttp.status==200||xmlhttp.status==0){
document.getElementById("ts").innerHTML="请求完毕";
document.getElementById("div").innerHTML=xmlhttp.responseText;
alert(xmlhttp.responseText);
}else{
alert("发生错误"+xmlhttp.status);
}
}
}
</script>
<a href="#" onclick="xmlrequest('http://cnbeta.com')">a</a>
<a href="#" onclick="xmlrequest('http://www.baidu.com')">b</a>
<div id="ts"></div>
<div id="div"></div>
xmlhttp.onreadsatechange=indiv();应该是:xmlhttp.onreadystatechange=indiv;
另外“indiv”回调函数,处理时是需要判断ajax是否交换完毕,而你却没判断交换是否完成就调用数据,这是没用的。
========以下是修改后的====以下代码在IE 8.0下测试通过====
<script>
var xmlhttp;
function setxmlhttp()
{
alert("0");
if(window.ActiveXobject)
{
alert("1");
xmlhttp=new ActiveXobject('Microsoft.XMLHTTP');
alert("2");
}
else if(window.XMLHttpRequest)
{
alert("3");
xmlhttp=new XMLHttpRequest();
alert("4");
}
}
function xmlrequest(xx)
{
setxmlhttp();
alert(xmlhttp);
xmlhttp.open("GET",xx,true);
xmlhttp.onreadystatechange=indiv;
xmlhttp.send(null);
document.getElementById("ts").innerHTML="正在获取数据,请稍候...";
}
function indiv()
{
if(xmlhttp.readyState==4){
if(xmlhttp.status==200||xmlhttp.status==0){
document.getElementById("ts").innerHTML="请求完毕";
document.getElementById("div").innerHTML=xmlhttp.responseText;
alert(xmlhttp.responseText);
}else{
alert("发生错误"+xmlhttp.status);
}
}
}
</script>
<a href="#" onclick="xmlrequest('http://cnbeta.com')">a</a>
<a href="#" onclick="xmlrequest('http://www.baidu.com')">b</a>
<div id="ts"></div>
<div id="div"></div>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询