Maison >développement back-end >tutoriel php >thinkphp ajaxreturn 返回数据问题
thinkphp真用着不顺手,老有问题,为什么thinkphp ajaxreturn 返回的是json格式的字符串,而不是json对象。本地是返回对象,服务器上是返回字符串,求解……
无人问津……
json格式的字符串?什么概念?
json格式的字符串?什么概念?
应该是有可以控制的地方吧
没用过这个框架 自己 eva 或者 JSON.parse 一下吧
应该是有可以控制的地方吧
没用过这个框架 自己 eva 或者 JSON.parse 一下吧
应该是有可以控制的地方吧
没用过这个框架 自己 eva 或者 JSON.parse 一下吧
LZ。建议你去THINKPHP官方的论坛咨询比较有效率。。。
dataType: 'json'
dataType: 'json'
在你不转化为json之前,输出结果集看看。
http传输的都是文本,何来的object?
json本身就是一个文本格式的数据表现形式,只有通过js引擎解释执行后才会变为js的object
你 #3 的截图表示 json 数据串已经正确返回了
那么为什么图二的串未被转换成对象呢?
这与你的服务器默认的返回头有关系,当然也与你使用的浏览器有关系
你可以在返回前先输出声明 json 数据类型的头
也可以在 js 中通过判定数据类型来决定是否需要自己再做一次转换
当然,以上的讨论是建立在你的程序没有变化的基础上的
另外,这不能怪 thinkphp,因为 thinkphp 不可能预知有哪些浏览器会那么不人性化化的,刻板的按http头来解释数据
总结下,结贴了,
第一个可能问题在:thinkphp封装的json返回对象,有些浏览器不支持,所以不用官方的这个方法
第二个问题是:我们公司同事用的开发环境不一样,系统不同,有些文件产生了bom的问题,导致ajax返回值多了空格
我的也是多个空格,蛋痛