天天看點

Ajax向背景發送簡單或複雜資料,後端擷取資料的方法

Ajax向背景發送消息分為2種情況:

  1. Ajax正常傳回,并且傳回資料格式不是很複雜
  2. 複雜情況,前端會将複雜 資料進行反序列化為一個JSON串

下面本人就根據這 2 種情況,在後端如何擷取資料的方法與大家分享。

第一種情況:(資料簡單)

前端:

$.ajax({
   ...
   data: {name: 11, age: 12, xx: [11, 22, 33]} 
  ... 
})

$.post(url, data, callback)      

後端:

request.POST
request.POST.get(\'name\')
request.POST.get(\'age\')
request.POST.get(\'xx\')      

總結:第一種方法擷取資料簡單,無需對傳回的資料做過多的處理,在後端即能正常擷取。

第二種情況:(資料複雜)

前端:

$.ajax({
   ...
   data: JSON.stringfy({name: {k1:1, k2:666}, xx: [11, 22, [11, 22, 33]]})
  ... 
})

$.post(url, JSON.stringfy({name: {k1:1, k2:666}, xx: [11, 22, [11, 22, 33]]}), callback)      

後端:

request.body
info = json.loads(request.body.decode(\'utf-8\'))
info[\'name\']
info[\'xx\']      

總結:面對前端傳過來的複雜資料,後端接收這些資料不能用POST接收,要用body接收該位元組,再将位元組轉換為字元串,就能擷取傳過來的字典。