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>