利用ajax如何傳送json格式資料/和檔案
阿新 • • 發佈:2021-06-16
ajax不能直接傳送 json格式 資料
模板展示
$('#id').click(function(){ $.ajax({ url:'', type:'post', contentType:'application/json', data:JSON.stringify({'name':$('#username').val(),'password':$('#password').val()}), success:function(args){alert(args)} }) })
主要重點在:要新增 contentType:application/json 對於data資料要 提前轉JSON.stringify(xxxx)
同時後端提取時資料時 要通過request.body 而並非時requsest.POST
傳送檔案格式模板注意:
#要利用內建物件FormData let formDataobj=FormData() #新增普通鍵值對 formDataobj.append('username',$('#id').val()) #新增檔案資料 formDataobj.append('myfile',$('#id')[0].files[0]) $ajax({ url:'', type:'post', data:formDataobj, contentType:false, processData:false, success:function(args){ alert(args)} })
主要注意點是:
要利用內建物件FormData生成obj
obj.append('name',檔案物件) 逗號相連 取檔案的也應該要記得 $('#id')[0].files[0]
額外的引數設定
processData:false
contentType:false
通過request.Files.get()取檔案資料
順帶想了一下csrf的三種方式的校驗
第一種在form表單的任意位置新增
{%csrf_token%}
ajax傳資料時 加上一個額外的普通鍵值對
'csrfmiddlewaretoken':'{{csrf_token}}'
第三種引入js檔案
利用script標籤 從網路上搜索即可