Ajax向背景發送消息分為2種情況:
- Ajax正常傳回,并且傳回資料格式不是很複雜
- 複雜情況,前端會将複雜 資料進行反序列化為一個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接收該位元組,再将位元組轉換為字元串,就能擷取傳過來的字典。