为什么我不能在ajax中使用POST方法获取参数?

时间:2016-03-24 11:23:29

标签: javascript php ajax

以下是我尝试使用ajax:

var x="";
var xxx= setTimeout(myFunc, 7000);
function myFunc(){
    x=document.forms["form1"]["image"].value;
    if(x!=""){
    var xhttp= new XMLHttpRequest();
    xhttp.onreadystatechange=function(){
    if(xhttp.readyState==4 && xhttp.status==200){
        var z= xhttp.responseText;
        alert(z);
        }
    };
       xhttp.open("POST", "test.php", true);
       xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       xhttp.send("url="+x);
    }
}

这里的test.php:

<?php
$a= $_POST["url"];
echo $a;
?>

提醒(z)会显示一些HTML文档,而不是网址。我做错了什么?我如何纠正它并从ajax获取参数?

1 个答案:

答案 0 :(得分:0)

对您的js部分和test.php文件进行以下更正:

  • js part:

    ...
    var params = "url="+ encodeURIComponenet(x);
    xhttp.open("POST", "test.php", true);
    xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhttp.setRequestHeader("Content-length", params.length);
    xhttp.send(params);
    
  • <强> test.php的

    <?php
        if (isset($_POST["url"]) && !empty($_POST["url"])) {
            $a = $_POST["url"];
            echo $a;
        }
    
    ?>