跨站AJAX请求,PHP解析json串出错解决办法

        今天的开发任务涉及到两个系统的某一个数据需要同步,于是在A系统中操作数据库后用crud调用B系统的接口,同步数据,但是在B更改成功后,返回的数据A系统不能正常的解析,并且使用的是PHP自带函数,json_decode和json_encode,但是解析出来的结果要么不正确,要么空白;苦恼了甚久,最后找到原因:BOM头!!!

        因为返回的数据带了BOM头,所以解析出错,我们在处理返回数据时,也就是json_decode之前需要对得到的数据进行处理。具体如下图:

跨站AJAX请求,PHP解析json串出错解决办法

        我们在处理crud得到的$data之前需要执行类似这样的代码:

$data = trim($data,chr(239).chr(187).chr(191));
$data = json_decode($data,true);
        这样被解析的出来的数据才是正确的。