【问题标题】:Issues with ajax in djangoDjango 中的 ajax 问题
【发布时间】:2012-11-07 05:28:17
【问题描述】:

我第一次在 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")

当我点击浏览器中的更改内容按钮时它什么也不做。

任何建议都会被采纳

【问题讨论】:

  • 你看过firebug的网络控制台,看看是否有一个实际的请求发送?如果是的话,对它的反应是什么?如果您的 javascript 代码中有错误,firebug 中的控制台选项卡也会记录。
  • 是的,它给了我 403 禁止错误,但现在我已经解决了这个问题,它对我有用。 感谢您的建议和关注

标签: python ajax django


【解决方案1】:

这是我使用的基本请求/响应设置。我从Django Braces Module 获得了 JSONResponse 和 AjaxResponse mixins。我还确保包含以下 Django CSRF fix 以防止我的 AJAX 请求被视为跨站点请求伪造。

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)

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 2011-07-26
    • 1970-01-01
    • 2010-12-05
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2017-07-01
    相关资源
    最近更新 更多