在AJAX中没有接收JSON数据

时间:2014-05-28 06:48:22

标签: php ajax json

这是我的JavaScript文件。它没有显示从PHP文件收到的数据。

var b1 = document.getElementById('button1');
b1.addEventListener('click',ajax_post());
function ajax_post()
{
document.getElementById("status").innerHTML="You have pressed submit button";
var hr = new XMLHttpRequest();
if(!hr)
{alert("cant create object");}
else {
alert("object created");
}
var url = "popup.php";
var fn = encodeURIComponent(document.getElementById("firstname").value);
var ln = encodeURIComponent(document.getElementById("lastname").value);
var vars = "firstname="+fn+"&lastname="+ln;
hr.open("POST",url,true);



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


hr.onreadystatechange = function()
{

var obj = JSON.parse(hr.responseText);

 document.getElementById("status").innerHTML=obj.firstname;



}
hr.send(vars);
return false;
};

我的php文件是:

<?php
$header = "Content-Type: application/json";
header($header);
if (isset($_POST['firstname']))

{
 $fnam=$_POST['firstname'];
 $lnam=$_POST['lastname'];
 $data=array("lastname"=>$fnam,"lastname"=>$lnam);
 json_encode($data);
}
 else
 {
 $data=array("firstname"=>"haider","lastname"=>"rehman");
 echo json_encode($data);}
?>

如果有任何错误,请告诉我,我是编程初学者。

1 个答案:

答案 0 :(得分:1)

您需要echo json_encode()

替换

json_encode($data);

通过

echo json_encode($data);