1

何らかの理由で、AngularJs の get リクエストを介してフォームを 2 回送信するコントローラーがあります。私のデータベースでは、フォームが 2 回送信されていることがわかります。また、コンソールのネットワーク タブでも、2 回の送信がログに記録されていますが、最初の送信には OPTIONS の「リクエスト メソッド」があり、2 回目は GET です。これがヒントになるのではないかと思います。「オプション」を get メソッドに渡さず、送信先の URL だけを渡すので、少し混乱しています。

HTML:

<div class="row">
    <div ng-controller="groupEditCtrl">
        <form class="span11" name="" novalidate ng-submit="createArtifact()">
            <legend>Create a new group</legend>
            <div class="row">
                <div class="span5">
                    <div class="control-group">
                        <div class="controls">
                            <input name="text" type="text" placeholder="Group Name" required ng-model="artifact.group_name" />
                        </div>
                    </div>
                </div>
                <div class="span5">
                    <p>
                        <small>What your artifact will look like:</small><br />
                        {{artifact.group_name}}
                    </p>
                </div>
            </div>

            <input name="token" type="hidden" required ng-model="window.token" />
            <div class="control-group">
                <div class="controls controls-row">
                    <button type="submit" class="btn" value="Submit" title="Submit">
                        <span>Submit</span>
                    </button>
                </div>
            </div>

        </form>
    </div>
</div>

コントローラ:

'use strict';

function groupEditCtrl($scope, $http, $routeParams, $cookie) {

    $scope.createArtifact = function(){
        var requestURL = window.base_url + "/Group/CreateGroup?callback=JSON_CALLBACK&token=" + window.token + "&group_name=" + $scope.artifact.group_name;
        $http.get( requestURL ).
            success(function(data, status, headers, config) {
                console.log('You have successfully submitted a Cause/CreateCause');
            }).
            error(function(data,status,headers,config){
                console.log('You have FAILED submitting a Cause/CreateCause');
            });
    }
};
4

3 に答える 3

1

私の場合、ヘッダー: {'Content-Type': undefined} 動作します。また、2 回呼び出されることはありません。

$http.post("index.php", {id : $scope.A},{
    headers: {'Content-Type': undefined}})
    .success(function (response) {
       $scope.OK = response.POLL;
    }
}
于 2015-11-05T05:47:11.413 に答える
0

これは、私が認識していなかったビルド中のカスタム API の問題であることが判明しました。

于 2013-09-20T14:39:17.037 に答える