1.通过F12得到,
当php端声明了返回格式是json,那么会在客户端的
Response Header中Content-Type:application/json;charset=utf-8;
当php端没有声明返回格式是json,那么会在客户端的
Response Header中Content-Type:Content-Type:text/html; charset=UTF-8;(默认)
2.W3SCHOOL上说,dataType如果不指定的话,jquery将自动根据http包mime信息来只能判断,在HTTP中,MIME类型被定义在Content-Type header中。
3.根据前两点,意思是说,如果Php端声明了json返回,那么js端可以不用写dataType="json";如果Php端没有声明json返回,那么js端必须写dataType="json";
所以,推荐写法如下:
<script>
$.ajax({
type: "GET",
url: "x.php",
dataType:"json",
success:function(data){
alert(data.myname);
},
error:function () {
alert("发生错误");
}
});
</script>
补充:PHP端声明返回格式的语法是:
//指定该PHP返回的数据为json格式
header("Content-Type:application/json;charset=utf-8");