为什么我有ajax通信问题?

时间:2012-03-17 16:12:07

标签: php javascript ajax

我试图将一些信息发送到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');
}
..

2 个答案:

答案 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页面并返回页面的答案!