Django用ajax进行post请求

post请求有两种,跨域和不跨域

1、不跨域

 

# 不跨域的 view.py

def re_json(request):

    print(request.POST['name'])

    p1 = ProductModel.objects.all()

    data = []
    for item in p1:
        data.append({
            'name':item.name,
            'brief':item.brief,
            'img_url':'/'+str(item.prodectImg),
            'time':str(item.pub_date),
        }.copy())

    ls = json.dumps(data,ensure_ascii=False)
    info = HttpResponse(ls)

    # 下面这两行设置夸域请求,跨域就是用这两行
    # info['Access-Control-Allow-Origin'] = '*'
    # info['Access-Control-Allow-Headers'] = "Content-Type"

    return info

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ajax请求</title>
</head>
<body>
    <div>八戒你瘦了</div>
    <button id="dj">获取数据</button>
    <script src="/static/js/jquery.min.js"></script>
    <script>
        $('#dj').click(function () {
        // 不跨域要携带csrf_token 过去。
            info = {
              csrfmiddlewaretoken: '{{ csrf_token }}', // 为了防止csrf_token的拦截,所以必须带这个过去。
              name:'老王'
            };
            $.ajax({
            url:'http://127.0.0.1:8000/re_json/',
            type:'post',
            data:info,
            success:function (res) {
                data = JSON.parse(res);
                console.log(data);
            },
        })
        })

    </script>
</body>
</html>

  

posted @ 2018-11-06 23:09  洺剑残虹  阅读(594)  评论(0编辑  收藏  举报