位于0的JSON中的意外标记u给出空值

时间:2018-02-02 07:08:50

标签: angularjs json

我知道这是重复但我无法在其他帖子中解决此问题。我对角度很新,我正在尝试完成一个项目,但是我遇到了错误。

当我点击一个按钮时,将获取ng-model的值并将其推送到数组中。此处的值取为null。出于同样的原因,存储该值的数据库中的column会在表列中获取null时抛出错误。

SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at Object.addtext (scripts1.js:169)
    at fn (eval at compile (angular.js:13231), <anonymous>:4:367)
    at f (angular.js:23371)
    at b.$eval (angular.js:15878)
    at b.$apply (angular.js:15978)
    at HTMLButtonElement.<anonymous> (angular.js:23376)
    at HTMLButtonElement.dispatch (jquery.min.js:3)
    at HTMLButtonElement.q.handle (jquery.min.js:3)

Html代码:

<div ng-repeat="task in ctrl.tasks track by $index" class ="listwrapper" id = "listwrapper">  
            <div id="titlebox">
                    <b  class ="card1" id ="cardtitle">
                        @{{task.title}}
                    </b>
            </div>

                <ul id="selected" style ="margin:0; padding:0; list-style: none;" class ="consort">
                        <li ng-click="ctrl.on($parent.$index, $index)" ng-repeat="cardt in ctrl.task.cardarr track by $index" class = "add-card" id="add-card">
                            @{{cardt}}
                        </li>   
                    </ul> 
</div>

包含变量的js文件:

.controller('parentcontroller', ['$compile','$http', 'trelloService' , function($compile, $http, trelloService){
    'ngInject';

    var vm = this;

function addtext(parentindex,index){
        $(`#board`).sortable({
        }).disableSelection(); 
        $(`#selected`).sortable({
            connectWith: `.consort`
        }).disableSelection();
        console.log(vm.newtitle[index]);
    $http({
            method: "POST",
            url: "/api/card/create/"+ vm.tasks[parentindex].id ,
            data: {title: vm.newtitle[index]},
            headers: {'Content-Type': 'application/json'}
    }).then((data) => {
            console.log(data);
    }).catch(function(data){
        alert("error");
    });

        var cardtitle = JSON.parse(JSON.stringify(vm.newtitle[index]));
        vm.tasks[index].cardarr.push(cardtitle);
    };

}]);

1 个答案:

答案 0 :(得分:0)

  

SyntaxError:位于0的JSON中的意外标记u

这个问题可能有两个原因:

  • 您正在尝试访问JSON字符串而不是JSON对象。

    在访问之前解析它:

    JSON.parse(data);
    
  • 检查响应标头中的Content-Type。它应该是application/json