Ajax响应是单一的

时间:2014-10-23 14:14:01

标签: php ajax json angularjs unicode

我有一个有角度的应用程序,我发出ajax请求。在响应中我应该得到真/假值,但我得到它们在unicode(/ u0001或/ u0000)包括撇号。以下是代码:

角度请求/响应

$http({
            headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
            url: window.location.href + 'home/getItem',
            method: "POST",
            data: {date: date}
        }).success(function(data) {

            $scope.items = data;
        });

PHP回复

array_push($newsArr, array(
                'id' => 1, 
                'status' => true,
                'description' => 'George's world'
));

print json_encode($newsArr);

这里的响应是正确的,当我创建var_dump时给出true和false。

但是我在json_encode之后将响应发送回angular,当我在控制台中打印响应时,它会以unicode形式出现。

[{"id":"1","status":"\u0001","description":"\u2019"}]

这是为什么?问题是,当我在标签内打印时,一切都还好。但是我需要在真假中得到anjular ajax响应,以便在ng-repeat中直接过滤一些数据。只有当我在Web服务器中托管应用程序并且在本地工作正常时才会发生这种情况。

我也试过使用JSON.parse和angular.fromJson,但没有运气。我不能简单地在unicode中验证true false。

1 个答案:

答案 0 :(得分:0)

我使用

解决了这个问题
json_encode($return, JSON_UNESCAPED_UNICODE)

代替

json_encode($return)