响应文本返回“未定义”值

时间:2018-09-15 17:44:11

标签: javascript php html ajax forms

我正在使用JavaScript Ajax从PHP获得响应。 在PHP中,我使用echo在Ajax中返回responsiveText的值,但是在console.log上,我看到响应为undefined,因此无法进行进一步的操作。

AJAX 请求是:

var xmlhttp = new XMLHttpRequest();
var senddata = "c=" + document.getElementById("image_value").value; 
xmlhttp.open("POST", "image_index.php",true);

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
    console.log(xmlhttp.responsiveText);    
    }   
};
xmlhttp.send(senddata);

PHP 文件为:

<?php
$im[] = "value1";
$im[] = "value2";
$im[] = "value3";

$i=-1;
if(isset($_POST['i_value'])){
    $i=$_POST['i_value'];
}
if($i==-1){
    $u="NOTHING";
}
else{
    $u=$im[$i];
}
echo "$u";
?>

其中im是一个数组

1 个答案:

答案 0 :(得分:0)

别担心,这只是一个简单的错字。响应文本为responseText而不是responsiveText

我还建议您为变量使用驼峰式大小写,以便进行良好的编程实践。 (例如,用dataToSend代替senddata)此外,由于您在this中使用了xmlhttp.onreadystatechange,因此我建议使用this来访问其responseText属性。查看代码示例以了解我的意思。

var xmlhttp = new XMLHttpRequest();
var dataToSend = "c=" + document.getElementById("image_value").value; 
xmlhttp.open("POST", "image_index.php",true);

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xmlhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    console.log(this.responseText);    
  }   
};
xmlhttp.send(dataToSend);