0

これは私の投稿スクリプトです:

 <script type="text/javascript">
        $(document).ready(function () {

            $("#email").submit(function () {
                console.log("here2");
                var formData = $("#id_email").serialize();
                console.log("here1");
                $.post("http://127.0.0.1:8000/poste/", formData, function(result){
                    alert(result);
                    console.log("hi")}



            );            
            });
        });
    </script>

これは私のジャンゴビューです:

@csrf_exempt
def posterous_view(request):
    if request.is_ajax():
        message = "Yes, AJAX!"
    else:
        message = "Not Ajax"
    print message
    return HttpResponse(message)

メッセージ/応答コードをフロント クライアント スクリプトのアラート ボックスに出力したいのですが、コンソールによると、関数自体が呼び出されていません。何か理由は?

4

1 に答える 1

2

フォームが送信されないように、false を返す必要があります。送信する場合、ajax リクエストは終了し、フォーム自体が優先されます。これを試して、それが問題かどうか見てみましょう:)

    $(document).ready(function () {

        $("#email").submit(function () {
            console.log("here2");
            var formData = $("#id_email").serialize();
            console.log("here1");
            $.post("/poste/", formData, function(result){
                alert(result);
                console.log("hi")
            });

            return false; // return false here
        });
    });
于 2012-12-27T22:23:44.853 に答える