jquery的get,post等方法回调函数会自动把返回json格式的data转化为对象吗?
我服务器用express框架的res.json()响应,传入的参数是{code:'1',msg: '操作失败'},这个方法把对象转化为json后返回,而在前端,把jquery的ajax方法的回调函数传入data,确可以直接输出data.code这种对象属性?
是不是说jquery已经自动转化json为对象了,那如果格式不符合键值对的返回数据呢?
配置dataType为json会自动帮你将回到中的参数转为json对象,但是你你需要返回标准json字符串,就你贴出来这个是会报错的,以为内jq1.4+以上用的JSON.parse来转换,怪异模式会报错
这个和你传的数据和ajax设置的接收数据格式有关吧;如果ajxa中的dataType(支持的数据类型:"xml" "html" "text" "script" "json" "jsonp")你设置的是 html ,你返回json字符,估计直接data.code是拿不到数据的。
PS : 据了解dataType的默认值是jQuery 智能判断的,你可以换几个类型试试看。
用了JQ 你可以用 JSON.pase() 或JSON.stringfiy() 来转换json字符串 和json对象
和ajax设置的接收数据格式有关,
ajxa中的dataType设置成 "json"时,返回数据会直接转换为json对象。
此时,如果返回数据不是标准json格式,会报错。
可以先去json.cn 检测一下你返回的是不是json,然后在通过jquery的ajax进行获取处理,在ajax的时候使用dataType:"json",就会帮你转换了。
默认不会,使用 JSON.pase()