Javascript 对php文件的GetXmlHttpObject AJAX调用

Javascript 对php文件的GetXmlHttpObject AJAX调用,javascript,ajax,Javascript,Ajax,我尝试使用GetXmlHttpObject对象调用php文件,运气不错,但URL变量似乎有问题 我是否需要以不同的方式处理URL字符串 以下是相关代码: remoteCounter('marks');//invoking function document.write("<div id=\"marks\"></div>");//destination div function GetXmlHttpObject () { var xmlHttp = null;

我尝试使用GetXmlHttpObject对象调用php文件,运气不错,但URL变量似乎有问题

我是否需要以不同的方式处理URL字符串

以下是相关代码:

remoteCounter('marks');//invoking function

document.write("<div id=\"marks\"></div>");//destination div

function GetXmlHttpObject () {

 var xmlHttp = null;

 try {
   // Firefox, Opera 8.0+, Safari, IE 7+
   xmlHttp = new XMLHttpRequest();
 } catch (e) {
   // Internet Explorer - old IE - prior to version 7
   try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
 }

 return xmlHttp;
}


function remoteCounter(param){
counterObj = GetXmlHttpObject();

var url="HTTP://dnsname/directory/view.php?" + param;
alert(url + " " + counterObj);

counterObj.open("GET", url , true);
counterObj.onreadystatechange=updateCounter;
counterObj.send(null);
}

function updateCounter(){
//alert('updateCounter');
    if (counterObj.readyState == 4 || counterObj.readyState == "complete"){
        document.getElementById("marks").innerHTML=counterObj.responseText;
    }
}
remoteCounter('marks')//调用函数
文件。填写(“”)//目的地分区
函数GetXmlHttpObject(){
var xmlHttp=null;
试一试{
//Firefox、Opera 8.0+、Safari、IE 7+
xmlHttp=新的XMLHttpRequest();
}捕获(e){
//Internet Explorer-旧IE-版本7之前
试一试{
xmlHttp=新的ActiveXObject(“Msxml2.xmlHttp”);
}捕获(e){
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}
}
返回xmlHttp;
}
函数remoteCounter(参数){
counterObj=GetXmlHttpObject();
var url=“HTTP://dnsname/directory/view.php?”+param;
警报(url+“”+计数器对象);
counterObj.open(“GET”,url,true);
counterObj.onreadystatechange=updateCounter;
counterObj.send(空);
}
函数updateCounter(){
//警报(“更新计数器”);
如果(counterObj.readyState==4 | | counterObj.readyState==“完成”){
document.getElementById(“marks”).innerHTML=counterObj.responseText;
}
}
我可以替换document.getElementById(“marks”)中的counterObj.responseText变量。innerHTML=counterObj.responseText

并且在源文档中正确地看到了测试字符串,因此我知道html和jscript源代码不是问题所在

我已经注释了view.php文件中的代码,只是回显了一个简单的字符串,但这两个字符串都没有显示出来——这再次让我认为问题出在对文件的请求中,而不是在文件中,也不是在源代码中

此帖子的实际服务器名和目录已替换为dnsname/directory。包括调试警报


感谢您的帮助。

更换前两行的订单:

document.write("<div id=\"marks\"></div>"); //destination div

remoteCounter('marks');  //invoking function
document.write(“”)//目的地分区
远程计数器(“标记”)//调用函数

首先必须使用id为“marks”的声明div标记。

这不能解决上述问题,但我强烈建议您查看jQuery以了解这类事情。这是否会持续
警报('updateCounter')
EverFire?安装firebug firefox扩展以调试此功能。它非常容易使用,并且会使调试问题变得更容易。使用firebug网络面板监视ajax请求和响应。您将看到带有标题详细信息和请求数据的响应。@Krister-我使用了jquery,但觉得这并没有使任务简化多少。@sdleihssirhc-是的,它会触发。