1. 程式人生 > 其它 >利用ajax如何傳送json格式資料/和檔案

利用ajax如何傳送json格式資料/和檔案

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標籤 從網路上搜索即可