报错:
at api request success callback function
SyntaxError: Unexpected token in JSON at position 0
php后台返回数据:
echo json_encode($response); //跟以往并没有任何区别
小程序请求并解析:
报错:
看到帖子有人回复说是bom头问题,
那么请问下,bom头问题怎么解决,是后台解决呢,还是小程序解决呢?
如果是后台解决,我尝试过以下两种方案:
1,
$result
= trim(
$result
,
"\xEF\xBB\xBF"
);
print_r(json_decode(
$result
, true));
exit
;
2,
$result
= @iconv(
"UTF-8"
,
"GBK//IGNORE"
,
$result
);
$result
= @iconv(
"GBK"
,
"UTF-8//IGNORE"
,
$result
);
print_r(json_decode(
$result
, true));
exit
;
然而都没有生效,实在没办法,在此求助。。。
另外,附加一个问题:
同样是wx.request,同样是php后台返回的json_encode(),在小程序端拿到的response.data,有时候是个string,有时候是个object????
我敢打赌,代码绝笔是一样的用法。
这是断点调试看到的数据:
"{"openGId":"tG4E0P0eBR4VolcGbP-v2lkpdgYB8","watermark":{"timestamp":1503802802,"appid":"wx3b2ac4c74d0ea730"}}"
看着好像都是双引号,不知道有没有问题;如果有的话,怎么解决呢?
大神们看看有没有问题。
哥,你的问题解决了吗?我也遇到了这样的问题
不客气,共同进步,我也被坑过,哈哈。
感谢各位大神鼎力相助;
最后是尝试了 “『花嫁雾语微请柬』小程序 ”的方法,去掉bom头问题解决问题的,谢谢『花嫁雾语微请柬』小程序 。
这个有个很重要的点:除了给自己文件去掉bom头,还要给引用的文件去掉bom头,我是在这里被坑了好久。谢谢大家。
哈哈 这么尴尬 我以前玩PHP的时候 用json_encode 也会有问题。学习了学习了~~~
官方提供的解密例子是有bom头的,这也是我经历过的,如果你用到了官方的解密例子,把每个用到的php文件处理一下bom头就行了。
我都是用json_encode,都没报错,你处理了所有的文件bom头了吗?包括引用的文件也要处理,只要引用的文件其中一个有bom头都会出问题的。
谢谢你。可是这个双引号不是我控制的。
我php后台给一个对一个array数据,进行了json_encode(array),返回给我的数据。。。。
不知道哪里会有什么问题
我也试过经常出现这样的问题,很多时候就是因为String的JSON格式不对,所以导致String无法解析成JSON
帮你测试了一下,如果你传回来的数据,最外面是有双引号的话,就无法转成JSON。
如果是:{"openGId":"tG4E0P0eBR4VolcGbP-v2lkpdgYB8","watermark":{"timestamp":1503802802,"appid":"wx3b2ac4c74d0ea730"}} 就是成功的,所以你再看下你回传的数据内容
"{"openGId":"tG4E0P0eBR4VolcGbP-v2lkpdgYB8","watermark":{"timestamp":1503802802,"appid":"wx3b2ac4c74d0ea730"}}"
这是返回的json数据,好像是没有问题的。
dom头的问题我也php处理过,好像没啥用。