django ajax 请求

相关网址: https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_692days_802_1.html

 

1、GET 请求不需要 CSRF 认证,POST 请求需要正确认证才能得到正确的返回结果。

      一般在POST表单中加入 {% csrf_token %}

<form method="POST" action="/post-url/">

    {% csrf_token %}

    <input name='zqxt' value="自强学堂学习Django技术">

</form>

 

2、请求地址 url 最好是写name,即便后面改变浏览器地址,请求也不影响

# name 请求

$.getJSON("{% url 'ajax_list' %}",function(ret){

    //返回值 ret 在这里是一个列表

    for (var i = ret.length - 1; i >= 0; i--) {

        // 把 ret 的每一项显示在网页上

        $('#list_result').append(' ' + ret[i])

    }

})

 

# path 请求

$.getJSON('/ajax_dict/',function(ret){

    //返回值 ret 在这里是一个字典

    $('#dict_result').append(ret.twz + '<br/>'+ ret.zqxt + '<br/>姓名:'+ ret.name + '

');

    // 也可以用 ret['twz']

})

 

3、我的解决办法

①setting: MIDDLEWARE:'django.middleware.csrf.CsrfViewMiddleware'

$.ajaxSetup统一设置,一定要写在html模板中,写在js中无效获取不到{{ csrf_token }}的值

$.ajaxSetup({

    data: {csrfmiddlewaretoken: '{{ csrf_token }}' },

});

③接口 python: return HttpResponse()  一定要加

def addArticle(request):

    title = request.POST.get("title")

    content = request.POST.get("content")

    dic = {'title': title, 'content': content}

    models.Article.objects.create(**dic)

    return HttpResponse("文章添加成功!")

效果图如下所示:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值