白驹过隙,这篇文章距今已有一年以上的历史。技术发展日新月异,文中的观点或代码很可能过时或失效,请自行甄别:)

做一个项目时需要用到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").改后果然正常.