[英]SyntaxError: Unexpected token C in JSON at position 0 in AngularJS
[英]AngularJS SyntaxError: Unexpected token in JSON at position 0
我正在尝试使用angularJS + codeigniter进行分页,我有一个由“ Cursos”调用的控制器和一个由“ api”调用的函数来获取数据
函数api代码:
$currentPage = $this->uri->segment(3); # Pagina atual
$sizePage = $this->uri->segment(4); # Tamanho da pagina (num de itens que serão listados)
$searchText = $this->uri->segment(5); # Argumento de pesquisa
$offset = ($currentPage - 1) * $sizePage; // Obter o offeset da pagina para obter os resultados paginados
$r = $this->cursos->obterCursos(0,$nomeCurso=null,"array",$sizePage,$offset);
$array = array('DadosDosCursos' => $r, 'totalCount' => count($r));
header('Content-Type: application/json');
return $this->output
->set_content_type('application/json')
->set_status_header(200)
->set_output(json_encode($array));
exit(json_encode($array));
结果看起来还可以:
{"DadosDosCursos":[{"i_imc_ID":"2","i_imc_cargaHoraria":"40 horas","i_imc_categoriaIDS":"1,2","i_imc_dataCreated":"2017-02-20 11:36:36","i_imc_etapasAprendizagem":"Etapa 1\r\netapa 2","i_imc_imagemLogo":"web-design-criacao-de-sites_04042016162740.png","i_imc_imagemMiniatura":"imagepress-impressos-profissionais_05012016115837.jpg","i_imc_metaDescriptions":"meta description","i_imc_metaTags":"meta tags","i_imc_nome":"Nome do curso 2","i_imc_softwaresIDS":"1","i_imc_status":"1","i_imc_subtitulo":"Subtitulo aqui","i_imc_textoApresentacao":"Apresenta\u00e7\u00e3o"},{"i_imc_ID":"1","i_imc_cargaHoraria":"80 horas","i_imc_categoriaIDS":null,"i_imc_dataCreated":"2017-02-17 00:00:00","i_imc_etapasAprendizagem":"Etapa 1","i_imc_imagemLogo":"modelagem-com-3ds-max--v-ray--photoshop_04042016163311.png","i_imc_imagemMiniatura":"imageweb-criacao-de-sites_14122015100956.jpg","i_imc_metaDescriptions":"meta description","i_imc_metaTags":"meta tags","i_imc_nome":"Curso de desenvolvimento de sistemas","i_imc_softwaresIDS":"1","i_imc_status":"0","i_imc_subtitulo":"subtitulo","i_imc_textoApresentacao":null}],"totalCount":2}
我的angularJS控制器:
app.controller('activityTableCtrl', function($scope, $http) {
$scope.currentPage = 1;
$scope.totalItems = 0;
$scope.pageSize = 10;
$scope.searchText = '';
getData();
function getData() {
$http.get('http://localhost/estudo/site/cursos/api/' + $scope.currentPage + '/' + $scope.pageSize
//$http.get("../assets/api/database.json"
)
.then(function(data) {
$scope.activity = [];
$scope.totalItems = data.totalCount;
$scope.startItem = ($scope.currentPage - 1) * $scope.pageSize + 1;
$scope.endItem = $scope.currentPage * $scope.pageSize;
if ($scope.endItem > $scope.totalCount) {
$scope.endItem = $scope.totalCount;
}
angular.forEach(data.DadosDosCursos, function(temp){
$scope.activity.push(temp);
});
});
}
$scope.pageChanged = function() {
getData();
}
$scope.pageSizeChanged = function() {
$scope.currentPage = 1;
getData();
}
$scope.searchTextChanged = function() {
$scope.currentPage = 1;
getData();
}
})
我在console.log上收到此错误SyntaxError: Unexpected token in JSON at position 0
我尝试使用JSON从另一个URL加载,一切都做得很好
这可能会也可能不会回答您的问题,但是如果您仅替换此循环,那就更好了:
angular.forEach(data.DadosDosCursos, function(temp){
$scope.activity.push(temp);
});
带有:
$scope.activity = data.DadosDosCursos
因为您已经在开始时清空$scope.activity
数组,并且没有修改data.DadosDosCursos
的条目的任何结构;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.