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接收該字節,再將字節轉換為字符串,就能獲取傳過來的字典。