Javascript AngularJS-TypeError:字符串不是函数
我有一个AngularJS控制器,它将表单数据传递给Spring控制器。Spring控制器返回一个jsp页面作为其响应。当我使用GET方法直接调用Spring控制器时,这可以很好地工作。我得到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
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");
});