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

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

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

图1

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

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

图2

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

在 PhpStorm 选择项目,右键执行 Remove BOM

图3

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

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

图4

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

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

图5

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

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/180981.html

(0)
上一篇 2021年10月31日
下一篇 2021年10月31日

相关推荐

发表回复

登录后才能评论