HTTP POST在表单中执行两次

时间:2017-06-14 11:49:57

标签: angularjs forms http sendgrid

我使用以下表格让我网站的用户给我发邮件:

pip install Django==1.10 

控制器:

<div class="row text-center">
    <div class="col-md-6 col-sm-12 col-xs-12 col-md-offset-3">
        <form class="form" method="post" ng-submit="mySubmit()">                
            <div class="form-group">
                <input ng-model="name" class="form-control" placeholder="Name:">
            </div>
            <div class="form-group">
                <input ng-model="mail" class="form-control" placeholder="Email:">
            </div>
            <div class="form-group">
                <textarea ng-model="message" class="form-control" rows="12" placeholder="Message:"></textarea>
            </div>
            <button type="submit" class="btn btn-lg btn-theme">Send Message</button>
        </form>
    </div>
</div>

然后,我意识到点击app.controller('RequestCtrl', ['$scope', '$http', function($scope, $http) { $scope.mySubmit = function () { alert($scope.name + " " + $scope.mail + " " + $scope.message); return $http.post('/request/addRequest', { "name": $scope.name, "mail": $scope.mail, "message": $scope.message }) } }]) 后,http帖子会启动两次:第一次是在点击按钮后立即,第二次是在大约3分钟后。结果,我总是收到2封邮件。

但是,submit总是执行一次。

有谁知道如何修复它?

PS:这是后端。一切都发了两次:

alert

Dev Tools中的法规只有一行:enter image description here

1 个答案:

答案 0 :(得分:1)

我找到了。

请求状态为pending的原因是后端没有res.json(...)

添加res.json(...)后,电子邮件只会发送一次。