日期:2014-05-16  浏览次数:20521 次

ajax求助
我刚学AJAX,请大家帮忙:
<head>
  <title></title>
<script type="text/javascript">
  var xmlhttp;
  function loadXMLDoc(url, cfunc) {
  if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp = new XMLHttpRequest();
  }
  else {// code for IE6, IE5
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange = cfunc;
  xmlhttp.open("GET", url, true);
  xmlhttp.send();
  }
  function myFunction() {
  loadXMLDoc("文件/pjw.txt", function () {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
  }
  });
  }
</script>
</head>
<body>
<div id="myDiv"><h1>I change it!</h1></div>
<button type="button" onclick ="myFunction()">通过AJAX改变内容</button>
</body>

上面是我的一段代码,我想实现简单的改变<div>中的文本。我的"文件/pjw.txt"里面的内容是:I can make it!,
 但是系统在(document.getElementById("myDiv").innerHTML = xmlhttp.responseText)这个地方报错。当我换成"文件/网址.txt"时可以运行,成功改变div的值
这是为什么呢?

------解决方案--------------------
报上面错,看代码没什么大问题。该不会是你文件不存在吧
------解决方案--------------------
看不懂,建议使用测试工具查看ajax是否返回正确的值
------解决方案--------------------
不会你浏览器组件问题吧,去别的电脑试试看,创建高版本的acx,低版本的可能兼容性不很好

JScript code
function getXHR() {
   var acX = ['msxml2.xmlhttp.5.0', 'msxml2.xmlhttp.4.0', 'msxml2.xmlhttp.3.0', 'msxml2.xmlhttp', 'microsoft.xmlhttp'], Xhr;
   for (var i = 0; i < acX.length; i++) try { Xhr = new ActiveXObject(acX[i]); return Xhr; } catch (e) { } return false; 
}

------解决方案--------------------
看不懂,在学习中
------解决方案--------------------
这年头, 还用自己手写ajax底层代码?
用jquery吧, 不用关注代码本身, 把更多精力放在业务上去吧

你找找 $.post, $.ajax 这两个函数