Django用ajax进行post请求

时间:2021-07-30 18:21:41

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>