Javascript AngularJS-TypeError:字符串不是函数

Javascript AngularJS-TypeError:字符串不是函数,javascript,spring,angularjs,spring-mvc,Javascript,Spring,Angularjs,Spring Mvc,我有一个AngularJS控制器,它将表单数据传递给Spring控制器。Spring控制器返回一个jsp页面作为其响应。当我使用GET方法直接调用Spring控制器时,这可以很好地工作。我得到TypeError:string不是chrome控制台中的函数,当我通过ng单击提交按钮调用控制器时 表格:- <form name="empForm" ng-controller="insertEmpCtrl" > Name: <input type="text" class

我有一个AngularJS控制器,它将表单数据传递给Spring控制器。Spring控制器返回一个jsp页面作为其响应。当我使用GET方法直接调用Spring控制器时,这可以很好地工作。我得到
TypeError:string不是chrome控制台中的函数,当我通过
ng单击提交按钮调用控制器时

表格:-

<form name="empForm" ng-controller="insertEmpCtrl"   >
    Name: <input type="text" class="form-control" name="fname" ng-model="formData.fname"/></form>
    <input type="submit" value="Save" ng-click="insertEmp()" />
</form>
弹簧控制器:-

empApp.controller('insertEmpCtrl',function($scope,$http){

        $scope.insertEmp = function(){
            $scope.formData = {};
            $http.post("http://localhost:8080/IdeaOne/addemp", $scope.formData, {
                withCredentials: true,
                headers: {'Content-Type': undefined},
                transformRequest: angular.identity
            }).success($scope.message = "employee added").error(console.log("error"));
        };
    });
@RequestMapping(value="/addemp",method = {RequestMethod.POST, RequestMethod.GET})
public String addEmployee(ModelMap model) {
    String fname = model.get("fname").toString();
    String lname = model.get("lname").toString();
    String contactno = model.get("contacton").toString();
    EmployeeManager.insertEmployee(fname,lname,contactno);


    return "hello";
}
控制台中的错误:-

TypeError: string is not a function
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:70:515
at m.promise.then.u (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:97:280)
at m.promise.then.u (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:97:280)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:98:417
at h.$get.h.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:108:482)
at h.$get.h.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:106:62)
at h.$get.h.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:109:287)
at f (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:71:247)
at F (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:75:408)
at XMLHttpRequest.x.onreadystatechange (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js:76:457) 

有人能告诉我解决这个问题的方法吗?

我想问题就在这里

.success($scope.message = "employee added")
$scope.message
被指定为“employee added”(一个字符串),然后作为回调函数传递给
success()
。当Ajax调用完成时,它将作为函数被调用,从而导致错误

相反,将函数作为回调传递

$http.post("http://localhost:8080/IdeaOne/addemp", $scope.formData, {
    withCredentials: true,
    headers: {'Content-Type': undefined},
    transformRequest: angular.identity
}).success(function () {
    $scope.message = "employee added";
}).error(function () {
    console.log("error");
});