在 Windows 10 64、Yii 2 下,RESTful 接口响应 JSON 格式,CakePHP做为 http 客户端,再次转发响应数据至浏览器,浏览器端无法解析的解决

1、初步怀疑是因为 bom 头导致的问题,在 EditPlus 中另存为编码:UTF-8 + BOM,如图1

图1

2、执行 Git 提交,差异:文本是相同的,但文件不匹配。发现下列差异:编码方式(ASCII, UTF-8 BOM),如图2

图2

3、在 PhpStorm 选择项目,右键执行 Remove BOM,如图3

图3

4、执行 Git 提交,发现文件 bom 头已经去掉,无差异,Remove BOM 的执行效果符合预期,且确认程序文件中无 bom 头,如图4

图4

5、在浏览器中复制响应的数据存储至txt文档中,然后在 Windwos PoserShell 中查看,发现确定是存在 bom 头的,如图5

图5

6、最终分析发现,原因在于 php http client(基于CakePHP) 的配置文件中,一个文件存在 bom 头,去掉 bom 头,浏览器上可以正常解析

 

永夜