无法获取xmlhttprequest发送方法的工作方式

时间:2012-04-22 04:09:11

标签: php javascript ajax xmlhttprequest

原谅这个简单化的问题。我想将一个变量从javascript传递到php,我知道这可以用xmlhttprequest对象完成。所以我构建了一个测试脚本来弄清楚如何做到这一点。

我正在使用XAMPP,我将以下文件main.php和test.php放入htdocs文件夹中的正确位置。

main.php尝试使用xmlhttprequest将变量传递给test.php。 test.php简单地回显变量。然后我尝试在main.php中显示回显的结果。

当我在浏览器中加载main.php并查看源代码时,我希望看到变量回显。相反,我看到一条错误消息,表明应该传递给test.php的变量未定义。

任何帮助都是最受欢迎的。

    <html>
    <head>
    <title>Main</title>

    <script type="text/javascript" src="../scripts/jquery-1.7.1.min.js"></script>

    <script language="javascript" type="text/javascript">

    $(document).ready(function () {

        xmlhttp=new XMLHttpRequest();

        xmlhttp.open("GET","test.php?var1=hello", true);
        xmlhttp.send(null);

        <?php include("test.php"); ?>

    });

    </script>

</head>
<body></body>
</html>

以下是test.php中的代码,该代码与main.php

位于同一文件夹中
<?php
$name=$_GET['var1'];
echo $name;
?>

2 个答案:

答案 0 :(得分:0)

我相信您正在以异步模式运行请求,因此请检查就绪状态更改:

xmlhttp=new XMLHttpRequest(); 

xmlhttp.open("GET","test.php?var1=hello", true); 
xmlhttp.send(null); 

xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4) {
   alert(xmlhttp.responseText)
}

答案 1 :(得分:0)

我注意到你看起来好像在使用jQuery(如果它是Sizzle,忽略其余部分), 所以你不需要使用它! jQuery内置了Ajax方法,大大简化了它!

$.ajax({
    url:"test.php",
    method:"get",
    data:{
             var1:"hello"
         }
}).done(function(data){
     alert(data);
});

将创建XMLHttpRequest并发送它。