做一个项目时需要用到jQuery的ajax通过PHP返回json进行交互,但是返回的却无论如何前端都不能得到json,通过google终于得到解决办法,记录下.
用个例子说明下.
首先我写的是这样的:
前端:
<html>
<head>
<title>Hello world</title>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<script>
$.ajax({
url:'test.php',
type:'get',
dateType:'json',
success:function(abc){
alert(typeof abc);
}
});
</script>
</html>
后端:
<?php
$abc='abc';
$cde='cde';
$a=array('a'=>$abc,'b'=>$cde);
echo json_encode($a);
在这里我发现ajax返回的值只是一个字符串而不是一个json.打印出type为string而不是object,怪哉,请教公司同事,答曰要用什么envy方法巴拉巴拉,可是我记得我曾经google的时候看到并没有这个方法,于是继续研究,最终在这篇博客上面发现了问题,原来我的php如果直接echo的话返回的确实是string,需要在后端定义头部header("content-type:application/json")
.改后果然正常.