来自角形式的$ http.post不发送任何数据

时间:2015-11-25 09:50:40

标签: javascript angularjs node.js

我有一个发布/ api / tradelink的表单,但它不会发送任何正文或数据。

HTML:

<form ng-submit="sendTradelink()">
            <md-input-container class="md-accent">
                <label>Enter your tradelink</label>
                <input ng-model="tradelink">
            </md-input-container>
            <md-button type="submit" class="md-raised md-accent">Send</md-button>
        </form>

服务:

.factory('Auth', ['$http', '$api', '$window', function ($http, $api, $window) {
        var authFactory = {};
        authFactory.authenticate = function(){
            $http.post($api.url + 'auth')
            .successs(function(url){
                $window.location.href = url;
            });
        };
        authFactory.send = function () {
            return $http.post($api.url + 'tradelink');
        };
        return authFactory;
    }]);

控制器;

.controller('AppCtrl', ['$scope', 'Auth', '$location', '$cookies', function ($scope, Auth, $location, $cookies) {
        var sidTemp = 'needtomakeitanewvalue';
        $scope.checklogin = function () {
            $scope.sid = $cookies.get('sid2');
            console.log($scope.sid);
        }
        $scope.sendTradelink = function () {
            Auth.send($scope.tradelink)
                .success(function (res) {
                    $scope.sidTemp = 'needtomakeitanewvalue';
                    $cookies.put('sid2', sidTemp);
                    $location.path('/');
                });
        }
        $scope.auth = function () {
            Auth.authenticate();
        }
    }])

服务器端持有api请求,req.body或req.params中没有任何内容。两者都显示为空对象。

api.post('/tradelink', function(req, res){
    console.log(req.user.steamId);
    console.log(req.params);
    console.log(req.body);
    res.json({
      success: true,
      message: 'tradelink received'
    })
  });

1 个答案:

答案 0 :(得分:1)

查看$http.post

的Angular文档

您正在调用Auth.send($ scope.tradelink),但您的authFactory.send()函数需要接受此tradelink值,然后用作$ http.post()的数据参数

所以:

authFactory.send = function (tradelink) {
            return $http.post($api.url + 'tradelink', {tradelinkId: tradelink });
        };