У меня угловое приложение, и я делаю AJAX-запрос. В ответ я должен получить значения true / false, но вместо этого я получаю их в юникоде (/ 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);
Ответ здесь правильный, давая true и false, когда я делаю var_dump.
Но после i json_encode и отправки ответа обратно в angular он выдается в юникоде, когда я печатаю ответ в консоли.
[{"id":"1","status":"\u0001","description":"\u2019"}]
Почему это? Дело в том, что когда я печатаю это внутри тега, все в порядке. но мне нужно получить ajax-ответ ajular в true false, чтобы сразу фильтровать некоторые данные в ng-repeat. Это происходит только тогда, когда я размещаю приложение на веб-сервере, и локально оно работает нормально.
Я также попытался использовать JSON.parse и angular.fromJson, но безуспешно. Я не могу просто проверить истинное ложное в юникоде.
Я решил эту проблему, используя
json_encode($return, JSON_UNESCAPED_UNICODE)
вместо
json_encode($return)
Других решений пока нет …