我试图将一些信息发送到php文件并显示返回的结果。首先,我没有从php文件中收到任何结果,即xmlhttp.responseText
中没有值。而不是responseText,我尝试将'something else'
放在一起,这没有任何区别。但是当我评论//if (xmlhttp.readyState==4 && xmlhttp.status==200)
时,结果会短暂出现。
我做错了什么?
Ajax代码如下所示:
var div = 'display';
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
writeBack (div, xmlhttp.responseText+'something else', 'red');
}
}
xmlhttp.open("POST","update_profile2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("rr="+id);
Php代码:
..
if(isset($_POST['rr']))
{
die('connection made');
}
..
答案 0 :(得分:1)
我使用AJAX时遇到的每个问题通常都是由于尝试使用表单中的“提交”按钮提交AJAX请求。如果你这样做,请确保你停止.submit()....此外,如果你使用jQuery,你的AJAX代码看起来会好得多:)
答案 1 :(得分:0)
正如其他用户用jquery所说,代码看起来好多了。
但是我很确定你的问题在于这一行:
xmlhttp.open("POST","update_profile2.php",true);
上面的请求直接访问update_profile2.php并获取php页面的全部内容,而不是页面详细说明的输出。 这是您访问页面而不要求Web服务器(使用php引擎)为您提供服务的方式。当然,http呼叫失败,因此条件&& xmlhttp.status == 200阻止执行填充div的下一条指令。
改为使用:
xmlhttp.open("POST","http://localhost/update_profile2.php",true);
这将向apache发送ajax http请求,il将运行php页面并返回页面的答案!