Javascript Jquery以字符串形式返回json

Javascript Jquery以字符串形式返回json,javascript,php,jquery,ajax,json,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).re

我正在将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  

在任何地方我都错了,请帮助。

PHP默认声明其输出为HTML。因此,您正在将
数据
作为(无效)HTML字符串进行处理

加:



还要从JavaScript中删除
contentType:“json”,
。这不是有效的内容类型,并且您没有将发布的数据编码为JSON。

PHP默认声明其输出为HTML。因此,您正在将
数据
作为(无效)HTML字符串进行处理

加:


还要从JavaScript中删除
contentType:“json”,
。这不是有效的内容类型,并且您没有将发布的数据编码为JSON

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