未定义的函数:$ http.post中的.succes(angular.js)

时间:2014-08-16 20:46:29

标签: javascript php json angularjs post

我一直在尝试使用Angular JS进行搜索 但我得到了这个奇怪的错误:TypeError:undefined不是一个函数 它在.success

这是我的代码:

<html ng-app="app">
<head>
<meta charset="utf-8">
<script src="angular.js"></script>
<script>
  var app = angular.module('app', []);

  app.controller('ctrl', function ($scope, $http){
      $scope.url = 'fetch.php';
      $scope.search = '';

      $scope.postLink = function(){

        $http.post($scope.url, { "data" : $scope.search}).succes(function(data, status){
          console.log(data);
        }).error(function(data, status) {
          $scope.data = data || "Request failed";
          $scope.status = status;   
        });
      }
  });

</script>
</head>
<body ng-controller="ctrl">
    <input type="text" ng-model="search">
    <input type="submit" ng-click="postLink()">
</body>
</html>

任何人都可以告诉我为什么它会在.succes上给我一个错误吗?我不允许在那里打电话吗?

提前致谢!

3 个答案:

答案 0 :(得分:11)

拼写为success

$http是基于承诺的,所以您也可以使用:
成功.then
.catch失败和
在这两种情况下.finally

请参阅:

答案 1 :(得分:3)

succes函数名称中存在拼写错误。尽管如此,successerror函数现在从Angular 1.6中删除,应该替换为标准的promise函数.then() / .catch()

此答案中的更多详细信息:Why are angular $http success/error methods deprecated? Removed from v1.6?

答案 2 :(得分:1)

$ http promises then

第二,你有一个拼写错误,它应该是success