在前端頁面中寫入
<form> #用不用form沒關系,這里就是個盒子的作用,一般寫form標簽是為了提示別人,這個地方的內容是要提交的 {% csrf_token %} 用戶名 <input type="text" id="user"> 頭像 <input type="file" id="avatar"> <input type="button" id="ajax-submit" value="ajax-submit"> </form> <script> $("#ajax-submit").click(function(){ var formdata=new FormData(); #ajax上傳文件的時候,需要這個類型,它會將添加給它的鍵值對加工成formdata的類型 formdata.append("user",$("#user").val()); #添加鍵值的方法是append,注意寫法,鍵和值之間是逗號 formData.append("csrfmiddlewaretoken", $("[name='csrfmiddlewaretoken']").val()); #別忘了csrf_token formdata.append("avatar_img",$("#avatar")[0].files[0]); $.ajax({ url:"", type:"post", data:formdata, #將添加好數據的formdata放到data這里 processData: false , // 不處理數據 contentType: false, // 不設置內容類型 success:function(data){ console.log(data) } }) }) </script>
在視圖中寫入
def index(request): if request.is_ajax(): print(request.body) # 原始的請求體數據 print(request.GET) # GET請求數據 print(request.POST) # POST請求數據 print(request.FILES) # 上傳的文件數據 return HttpResponse("ok") return render(request,"index.html")
