2 seaway1234 seaway1234 于 2017.08.13 16:50 提问

小程序后台php返回JSON结果在开发环境与真机上为什么不一致

在实验一个简单的微信小程序,前台用wx.request请求数据后台php返回一个JSON格式的字符串. 遇到了一个奇葩现象:开发环境显示正常(含有后台传回数据)但真机测试时只显示前台的内容未能显示后台传回的数据。

检查发现小程序后台php返回的JSON结果,在小程序开发环境下能被正确识别为JSON对象, 但真机测试时却被识别为字符串, 而且用JSON.parse(res.data)也不能转换成JSON对象。 有碰到过这个问题的童鞋么? 应该怎么解决呢? 谢谢

前台代码:

wx.request({
  url: app.globalData.mallDomain + '/TestPhp.php',  
 success: function (res) {
    console.log(res.data);   // 能收到正常的JSON数据, 后续显示正常
    var myData = res.data;
    if (typeof myData == 'object') {
      wx.showModal('这是JSON对象');     //开发环境,到这儿
    }
    if (typeof myData == 'string') {
       wx.showModal('这是JSON string');   //真机环境,走这儿
       myData = JSON.parse(res.data);    //数据无法转为正常的JSON对象,后续显示崩溃
    }
  }
})

.......

后台php产生的数据:‘ {"code":0,"data":[{"dateAdd":"2017-04-06 10:16:40","icon":"https://cdn.it120.cc/apifactory/2017/04/23/dcbc320d330a3057e46879598f336da7.jpg","id":35,"isUse":true,"key":"czxf","level":1,"name":"水果","paixu":0,"pid":0,"type":"","userId":51},{"dateAdd":"2017-04-06 10:16:49","icon":"https://cdn.it120.cc/apifactory/2017/04/23/d3d2c6e15e21b8cb6a7bbeabd4da5242.jpg","id":36,"isUse":true,"key":"xhp","level":1,"name":"蔬菜","paixu":0,"pid":0,"type":"","userId":51},{"dateAdd":"2017-04-06 10:17:00","icon":"https://cdn.it120.cc/apifactory/2017/04/23/dad06a09c5ed85b874055d33ba7e312a.jpg","id":37,"isUse":true,"key":"hf","level":1,"name":"副食","paixu":0,"pid":0,"type":"","userId":51}],"msg":"success"}’

3个回答

oyljerry
oyljerry   Ds   Rxr 2017.08.13 20:28

即使json字符串也能进行解析json对象。你看看是不是字符串内容有问题

Tracy_frog
Tracy_frog   2017.08.13 21:54

那你就加个datatype嘛

qq_33330285
qq_33330285   2017.08.13 22:39

可以试试前端加datatype

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
小程序无法解析后台的json
添加了wxBizDataCrypt类后json就无法解析了加密数据解密算法的文件 “wxBizDataCrypt.php,pkcs7Encoder.php,errorCode.php”就是微信官网下载的文件 用notepad打开 然后菜单栏“编码”=》“转为utf-8 无bom编码”然后保存
微信小程序处理后台返回json
最近看微信小程序连接java后台,在网上找了个例子以下,但是可以调用起后台来就是取不到数据, bindtest: function () { wx.request({ url: 'https://localhost:8443/spring4/user/wei.do', // data: { // username: '001', // password: 'abc' // }
php 返回json中文乱码
$result = json_encode(xxxxxxxx); {"result":"error","data":"","message":"\u6b64\u5206\u9875\u7684\u7f13\u5b58\u5df2\u8d85\u65f6"} return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8',
android 客户端无法解析php服务端返回的json
android 客户端无法解析php服务端返回的json这个东西纠结了几个小时。。找到解决方法。。 http://blog.163.com/www_iloveyou_com/blog/static/211658372201401443815323/ … 很简单的一个json字符串: {“statu”:”1”,”results”:”true”},明显看着是没什么格式错误的,然后用各种json格
php返回json的结果
现在很多情况下,我们需要程序返回一个Json格式的结果,比如: { "UserKeyGetResponse": {"RequestName":"e99e6d63e8c712d7699f52978a","api_key_value":"41954dd9b1cb6a95802eab6810"}, "error_response": {"code":"NO_ERROR","msg":"
微信小程序 -- 后台接收数据为json
wx.request({ url:'', header:{ "Content-Type":'application/json' }, method:"POST", data: {'abc':input_data}, success:function(res){
小程序request返回值真机和工具不一样,需要将字符串转为json
小程序request返回值真机和工具不一样,需要将字符串转为json,目前还在解决中。 res.data。status无法取得 工具里是json,真机却变成字符串了
PHP给前端返回一个JSON‘对象’
解决问题:用php做后台时,如何给前端发起的AJAX请求返回一个JSON格式的"对象";说明:我本身是一个前端,工作久了之后发现要是不掌握一门后端开发语言的话,总感觉有点无力。最近在边做自己的个人网站边学习php,在写验证码验证的时候,需要给前端发起的验证请求返回一个便于操作的数据,于是自然就想到了返回一个JSON格式的“对象”。在网上查了很多写法,无奈大多不行,最后在stackoverflow上...
java 后台基础入门案例(返回json)
java 后台基础入门案例(返回json) 新手学习
springmvc 后台返回json
springmvc 前端获取后台传来的json list,遍历