收藏
回答

wx.request 返回值,在开发者工具中是json对象,手机上是string

API/组件名称 终端类型 微信版本 基础库版本
wx.request 客户端 6.6.1 1.6.6

* Bug 表现是什么?预期表现是什么?

同一个url,wx.request 返回值,在开发者工具中是json对象,手机上是string,而且用JSON.parse解析后会报错,报错信息如图


* 如何复现?


* 提供一个最简复现 Demo


wx.request({
    url: 'https://www.qiaobooks.com/Public/bookcontent/book_content_all_3694_1508167685.json',
    dataType: 'json',
    success: function (res) {
        console.log(res.data); //开发者工具中是json对象,手机上是string
        JSON.parse(res.data); //报错,见上图
    }
});


回答关注问题邀请回答
收藏

10 个回答

  • 李春
    李春
    2020-05-17

    解决方案:清除服务器返回的json格式中的空格。

    1、查看是否有空格:

    2、删除空格:

    这个删除空格不是直接使用函数删除,是因为服务器页面的编码导致的。请将相关的文件的编码使用notepad++转化成utf8无bom格式(根据自己的实际使用情况而定)

    点击【编码】-如果发现当前文件的编码是utf-8-bom格式,就选择【转化为utf-8】编码。

    转化完编码,再在微信开发者工具查看,发现多处的符号没有了。

    真机访问

    2020-05-17
    有用 1
    回复
  • 一双
    一双
    2019-08-22

    到了同样的问题,res.data 在开发者工具中是json对象,手机上是string

    请问最后是怎么解决的?

    2019-08-22
    有用
    回复 5
    • 祺爸💎
      祺爸💎
      2019-08-22
      字符问题,加载的json文件里面有一些特殊字符
      2019-08-22
      1
      回复
    • 一双
      一双
      2019-08-22回复祺爸💎
      嗯...确实找到个特殊字符,但是复制不出来。。复制出来就是个空格,请问有什么好的处理方法吗
      2019-08-22
      回复
    • 祺爸💎
      祺爸💎
      2019-08-22回复一双
      能找到的话可以尝试替换掉,或者先转码、替换后再转回去
      2019-08-22
      回复
    • 一双
      一双
      2019-08-22回复祺爸💎
      嗯,非常感谢,遇到问题再聊
      2019-08-22
      回复
    • ThenMorning
      ThenMorning
      2019-10-15
      怎么解决的? 怎么转码 替换?
      2019-10-15
      回复
  • 樊勇
    樊勇
    2018-11-12

    遇到了同样的问题,res.data 在开发者工具中是json对象,手机上是string


    请问最后是怎么解决的?


    2018-11-12
    有用
    回复
  • 姚芳
    姚芳
    2018-01-22

    请问楼主问题有解决吗?

    2018-01-22
    有用
    回复
  • 姚芳
    姚芳
    2018-01-22

    遇到同样的问题,之前一直可以,就最近两天发现这个问题,官方能具体说说什么原因造成的吗?没有任何改动,之前一直正常

    2018-01-22
    有用
    回复
  • 祺爸💎
    祺爸💎
    2018-01-11

    是啊,我就是用typeof的啊。我的问题不是怎么判断是不是字符串,而是我已经判断出了是字符串

    2018-01-11
    有用
    回复
  • 小杰
    小杰
    2018-01-11

    我之所以要你这么做,是因为我看到你手机调试的那个图,显示的结果可能就是一个对象来的

    2018-01-11
    有用
    回复
  • 小杰
    小杰
    2018-01-11

    你要判断他是不是字符串,你可以尝试一下typeof 结果,如果是字符串则返回String,如果是对象则返回Object,你要用这种方式来判断

    2018-01-11
    有用
    回复
  • 祺爸💎
    祺爸💎
    2018-01-11

    打开调试

    2018-01-11
    有用
    回复
  • 小杰
    小杰
    2018-01-11

    你是如何判断在手机上是字符串的呢?

    2018-01-11
    有用
    回复
登录 后发表内容