Javascript 对php文件的GetXmlHttpObject AJAX调用
我尝试使用GetXmlHttpObject对象调用php文件,运气不错,但URL变量似乎有问题 我是否需要以不同的方式处理URL字符串 以下是相关代码: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;
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-是的,它会触发。