javascript - 将数据发布到服务器 Angular $http post

标签 javascript angularjs post

[
    {
        "name": "AAAAAA",
        "date": "28-03-2016",
    },
    {
        "name": "BBBBBB",
        "date": "20-12-2016",
    },
    {
        "name": "CCCCCC",
        "date": "09-01-2016",
    },
    {
        "name": "DDDDDD",
        "date": "21-07-2016",
    }
]

我的 JavaScript:

var app = angular.module('app', []);
    app.service('service', function($http, $q){
        var deferred = $q.defer();

        $http.get('names.json').then(function(data){
            deferred.resolve(data);
        });

        this.getNames = function() {
            return deferred.promise;
        }
    });
    app.controller('FirstCtrl', function($scope, service, $http) {
        var promise = service.getNames();
        promise.then(function (data) {
            $scope.names = data.data;
            console.log($scope.names);
        }
    );
    $scope.postfunction = function(data) {
         $http({
                    method: 'POST',
                    url: 'serwerUrl' ,
                    data: {"name":$scope.name},
                    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
            })
                .success(function(data){
                    console.log('data success');
                });

HTML:

<tbody>
    <tr ng-repeat="name in names">
        <td>{{name.name}}</td>
        <td>{{name.date}}</td>
        <td><button ng-click="postfunction(names)">POST</button></td>
    </tr>
</tbody>

我想要做的是当我单击“POST”按钮时 name.name 发布到服务器。我尝试使用 postfunction() 函数,但它没有发布到服务器,在我的控制台中一切正常,但 name.name 没有发布到服务器。

最佳答案

您尝试发送的 $scope.name 未在任何地方定义。

您需要将此处的names更改为name:

...
<td><button ng-click="postfunction(name)">POST</button></td>
...

并在您的 postfunction 中完全放弃 $scope.name 并执行此操作(也使用 .then 而不是 .success,.success 已弃用):

$scope.postfunction = function(name) {
    $http({
            method: 'POST',
            url: 'serwerUrl' ,
            data: {"name": name},
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    })
    .then(function(data){
        console.log('data success');
    });
}

关于javascript - 将数据发布到服务器 Angular $http post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41612190/

相关文章:

javascript - 如何通过服务与 Angular.js 和 Node.js 建立连接?

javascript - 使用 Ajax 在外部 Rest API 上调用 post

javascript - 在 JavaScript 中删除项目并释放内存

javascript - 将 gatsby-node 文件重构为单独的文件不起作用

javascript - 动态网页从数据库中检索数据速度缓慢

javascript - 需要帮助来归纳curl Post代码中的JS/Node.js

java - 将 Python POST 请求转换为 Android

javascript - javascript Date 对象的参数与文档不同?

angularjs - Angular UI Bootstrap - 未选择 Typeahead 下拉值时清除模型值?

javascript - 什么是 $$hashKey 添加到我的 JSON.stringify 结果