Я провел последние несколько дней, пытаясь обойти эту проблему. Каждый раз, когда я пытаюсь получить объект JSON с использованием $ http.get в Angular, я получаю сообщение «Ошибка: JSON.parse: неожиданный символ».Получение «Ошибка: JSON.parse: неожиданный символ» при получении JSON с AngularJS
My JSON создан с использованием json_encode PHP. Код PHP заключается в следующем:
header('Content-Type:application/json');
echo json_encode($to_encode);
JSON он создает, выглядит так:
{"id":"1","para":{"para_id":"1","story_id":"1","para_content":""\u017bagiel na horyzoncie!" - s\u0142ycha\u0107 krzyk z bocianiego gniazda. Fregata Jego Kr\u00f3lewskiej Mo\u015bci "Acanta" \u017cwawo sunie przez b\u0142\u0119kit oceanu. Ty, jej dow\u00f3dca, stoisz na rufie. Bosman i sternik patrz\u0105 si\u0119 na ciebie, oczekuj\u0105c rozkaz\u00f3w."},"tunnels":[{"tunnel_id":"1","start_para_id":"1","end_para_id":"2","tunnel_content":"Spokojnie, zbli\u017cmy si\u0119 i sprawd\u017amy, kto to."},{"tunnel_id":"2","start_para_id":"1","end_para_id":"3","tunnel_content":"Bi\u0107 na alarm! Za\u0142oga do dzia\u0142!"}]}
(это UTF8 кодировке польски, если это уместно; текст просто заполнитель)
JS, который получает это выглядит следующим образом:
$scope.current_para = $http.get("/gamebook/run");
$scope.current_para.then(function(os){result = os.data; console.log(result);}
Вместо аккуратной JSON в моем console.log, я получаю ERRO r, хотя мой Firebug говорит мне, что метод GET был успешным и даже показал мне JSON, который он получил.
Работает ли он без частей польского языка? Я знаю, что это не решит вашу проблему, но будет хорошо знать, является ли это одним из тех польских символов, вызывающих проблему. – naththedeveloper
http://stackoverflow.com/questions/17976476/latin1-utf-8-encoding-problems- in-angularjs Возможно, что это будет? Просто догадка. –
Если он закодирован в UTF-8, то почему он включает экранированные коды Unicode? – superEb