1

初めてdjangoでajaxを使用しています..ネットでいくつかのチュートリアルを読んで、ajaxを介していくつかの情報を投稿する簡単なフォームを作成しようとしています。

ここに私のhtmlフォームがあります

<script src="http://code.jquery.com/jquery-latest.js"></script>

<script type="text/javascript">
function send_request()
{

 $.ajax({
                            type:"POST",
                            url:"/ajaxredirect/",


       });

}
</script>
<button type="button" onclick="send_request();">change content</button>

そしてそれは私の見解です

def Ajaxquery(request):
        if request.is_ajax():
                return HttpResponse("ok")
        else:
                return HttpResponse("error")

ブラウザでコンテンツの変更ボタンをクリックしても何もしません。

どんな提案も歓迎されます

4

1 に答える 1

1

これが私が利用した基本的なリクエスト/レスポンスのセットアップです。Django Braces Moduleから JSONResponse と AjaxResponse mixin を取得しました。また、AJAX リクエストがクロスサイト リクエスト フォージェリとして扱われないように、次の Django CSRF 修正を必ず含めました。

JQuery:

<script type="text/javascript">
function send_request() {
    $.ajax({
        type: 'POST',
        url: '/ajaxredirect/',
        data: $('#your_form').serialize(),
        crossDomain: false,
        success: function(ctx) { console.log(ctx); },
    });
}
</script>

Views.py

from django.views.generic import View
from braces.views import JSONResponseMixin, AjaxResponseMixin

class AjaxResponseView(JSONResponseMixin, AjaxResponseMixin, View):
    def post_ajax(self, request, *args, **kwargs):
        data = request.POST.items() # form data
        ctx = {'hi': 'hello'}
        return self.render_json_response(ctx)
于 2012-11-07T06:39:00.250 に答える