我正在使用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是一个数组
答案 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);