ajax - 使用 AngularJS 发布不起作用

标签 ajax angularjs http post

我想向我的 API 发送一个发布请求。它适用于 jQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
  $.ajax({
  type: "POST",
  url: "api.php?option=inscription",
  data: {lol : "mess"}
});
</script>

但它不适用于 AngularJS:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">    </script>
{{1+1}}
<script>
$http.post('api.php?option=inscription', {lol : "mess2"})
.success(function(){alert('cool');});
</script>

如果有人可以帮助我。谢谢!

更新: 感谢您的回答,我想简化,但现在还不清楚。所以在你的帮助下,这是我的新代码,问题是一样的。后台数据为空;

前端:

<html ng-app="myApp">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">   </script>

<div ng-controller="MainCtrl"></div>
{{data}}

<script>
var app = angular.module('myApp', []);

app.service('SomeService', function($http) {
this.readData = function(dataUrl, dataTobePosted) {

    var back =  $http.post(dataUrl, dataTobePosted);

    back.success(function(data){
      console.log(data);
      return data;
    }).error(function(data, status, headers, config) {
      return status;
});
    }
});

app.controller('MainCtrl', function($scope, $http, SomeService){
$scope.readData = function(url) {
    var dataTobePosted = {"lol": "mess"};

    $scope.data = SomeService.readData(url, dataTobePosted);
}

$scope.readData('api.php?option=inscription');
});
</script>
</html>

最佳答案

为清楚起见,我建议采用简单的实现方式。但是,可能需要进一步阅读才能准确理解行为。

angular.module('myApp').service('SomeService', function($http) {
    this.readData = function(dataUrl, dataTobePosted) {
        // read data;
        return $http.post(dataUrl, dataTobePosted)
            .then(function(res) {
                return res.data;
            }, function(res) {
                return res;
            }
    }
    return this;
});

angular.module('myApp').controller('MyController', function($scope, SomeService) {
    $scope.readData = function(url) {
        var dataTobePosted = {"lol": "mess"};

        SomeService.readData(url, dataTobePosted)
        .then(function(res) {
            $scope.data = res;
        }, function(res) {
            // Display error
        }
    }

    $scope.readData('api.php?option=inscription');
}

在 HTML 页面中的使用

<div ng-controller="MyController">
    {{data}}
</div>  

关于ajax - 使用 AngularJS 发布不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30050900/

相关文章:

javascript - 使用ajax更新php页面使用post请求重新加载页面?

angularjs - 错误 : [$injector:unpr] when injecting services in a controller

javascript - codeigniter - 通过选中复选框 jquery 将多个项目添加到购物车

javascript - 在被破坏的元素上使用 mutationObserver 的最佳方法

css - 如何通过函数获取 ng-style 的多 css 规则?

php - 将所有带有 http 的请求重定向到 https

python - 检查很多 URL 看看是否返回 200。最聪明的方法是什么?

c++ - 通过代理使用 C++/Boost 执行简单的 HTTP 请求?

php - 使用 AJAX 和 PHP 进行 mysql UPDATE 在两种相同情况之一中不起作用

php - Ajax调用PHP Mysql公共(public)静态函数