1.HTML客户端:
$(function(){
$.ajax({
type:"POST",
url:"http://a.com/1.php",
async:true,
//dataType:"JSONP",//这里一定不能写JSONP,毕竟JSON值只支持字符串,数字,NULL,目前不支持function指针,一旦写了JSONP,Jquery就会强行在返回的对象方法上加双引号,造成解析错误。其实这里返回的是Javascript匿名类的字面值,并不是JSON值。既然这里用了跨域,那么在PHP端相应用了CORS技术。
success: function(data){
var obj = eval("(" + data + ")");
obj.getInfo();
},
error: function(){
alert("fail");
}
});
});
2.程序后端:
header("Access-Control-Allow-Origin:*");
echo "{name:\"swat\",getInfo:function(){alert(this.name);}}";
本质上这里就不是真正的JSON,而是Javascript匿名类,这个类有方法,有属性,够齐全了。