我将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
我错了,请帮忙。
答案 0 :(得分:4)
默认情况下,PHP声明其输出为HTML。因此,您正在将data
处理为(无效)HTML字符串。
添加:
header("Content-Type: application/json");
同时从JavaScript中删除contentType: "json",
。这不是有效的内容类型,并且您没有将要POST的数据编码为JSON。