SyntaxError:当我发布请求

时间:2018-03-28 11:58:18

标签: angularjs http post

我正在使用submit()函数向api发出post请求,该函数附加到以jSON格式发送数据的ng-click指令,它会返回此错误。

邮递员运行正常,所以错误仅在客户端。

此外,email和selectedIds变量也不为空。

enter image description here

这是我的控制器文件:

app.controller('categoryController', ['$scope', '$rootScope', '$sce', '$http', '$timeout','$window', function($scope, $rootScope, $sce, $http, $timeout, $window) {
    $scope.allCategories = {};
    $http({
        method: 'GET',
        url: 'http://qubuk.com:8081/api/v1/alltag'
    })
        .then(function (data) {
            // console.log("DATA:" + JSON.stringify(data.data.categories[0].displayName));
            // console.log("DATA category:" + JSON.stringify(data.data.categories));
            $scope.allCategories = data.data.categories;
        });

    $scope.selectedIds = [];

    $scope.change = function(category, active){
        if(active){
            $scope.selectedIds.push(category.id);
        }else{
            $scope.selectedIds.splice($scope.selectedIds.indexOf(category.id), 1);
        }

        // console.log("SELECTED IDS:" + $scope.selectedIds);
    };

    $scope.email = "faiz.krm@gmail.com"
    console.log("email is "+  $scope.email);

    $scope.submit = function () {
        var tagsData = {"emailId": $scope.email,
                        "tagsId": $scope.selectedIds};
        console.log("tagsData:" + JSON.stringify(tagsData));
        $http({
            method:'POST',
            url: 'http://qubuk.com:8081/api/v1/user/update/tags',
            data: tagsData
        })
            .then(function (data) {
                console.log("Ids sent successfully!");
                alert("successful");
                $window.location.href = '/app/#/feed';
            })
    };

    // console.log("amm Categories:" + JSON.stringify($scope.allCategories));
}]);

编辑:响应不是JSON对象......它是一个字符串。我认为错误只是由于这个...我怎么能在前端解决它...

1 个答案:

答案 0 :(得分:0)

尝试添加:

headers : { 'Content-Type': 'application/x-www-form-urlencoded'}

根据您的要求:

$http({
        method:'POST',
        url: 'http://qubuk.com:8081/api/v1/user/update/tags',
        data: tagsData,
        headers : { 'Content-Type': 'application/x-www-form-urlencoded'}
    })

或者尝试传递字符串化数据:

$http({
        method:'POST',
        url: 'http://qubuk.com:8081/api/v1/user/update/tags',
        data: JSON.stringify(tagsData),
        headers: {'Content-Type': 'application/json'}
    })