Jquery将json作为字符串返回

时间:2014-07-25 12:34:40

标签: javascript php jquery ajax json

我将json对象从PHP发送到Jquery ajax

我能够以字符串格式而不是对象接收json数据。

PHP代码

$userdata=json_encode(array("FirstName"=> $fName,"LastName"=>$lName,"PhoneNumber"=>$phone,"EmailId"=> $email,"Balance"=>$balance));
echo $userdata;

的Javascript

$(document).ready(function(){
  alert();
  $.ajax({
    type:"post",
    url:"viewprofile.php",
    contentType: "json",
    data:{"somedata":"anydata"},
    success:function(response) {
      alert(response);
      $.each(response, function(key, value) {
        alert(key + ' ' + value);
      });
    }, 
    error: function (xhr, ajaxOptions, thrownError) {
      alert("error : "+xhr.status+" "+thrownError);     
    }
  });
});

我在成功函数的第一个警报中获得整个json

但是当我遍历json时,它会从字符串返回索引和值。

For Example  
第一个警报输出中的

{"fname":"abc","lname":"def"}

在迭代输出期间

0 {  
1 "  
2 f  
3 n  
4 a  
5 m  
.......so on  

我错了,请帮忙。

1 个答案:

答案 0 :(得分:4)

默认情况下,PHP声明其输出为HTML。因此,您正在将data处理为(无效)HTML字符串。

添加:

header("Content-Type: application/json");

同时从JavaScript中删除contentType: "json",。这不是有效的内容类型,并且您没有将要POST的数据编码为JSON。