我正在创建一个JSON对象并将其推入数组。
var json_array = []
var edit_info = {
'name': str_name,
'id': str_id,
};
json_array.push(JSON.stringify(edit_info))
并尝试json_array
在POST请求中发送。
$.ajax({
dataType: 'JSON',
url: req_url,
type: req_method,
data: {'req_data': json_array},
success: function(data){
console.log(data.message)
},
error: function(){
alert("Some error has occured.")
}
});
我从浏览器(Chrome)看到了奇怪的行为:似乎它传递了两个数组作为发布数据:
req_data[]:{"name":"naveen","id":"11"}
req_data[]:{"name":"kavi","id":"13"}
不应该这样吗
req_data[]: [{"name":"naveen","id":"11"}', {"name":"kavi","id":"13"}]
但是在views.py中request.POST
显示的发布数据应为:
{u'req_data[]': [u'{"name":"naveen","id":"11"}', u'{"name":"kavi","id":"13"}']}
但是request.POST['req_data[]']
显示
{"name":"kavi","id":"13"}
我不知道这里发生了什么。任何人?
您需要对request.POST使用QueryDict.getlist方法,然后将每个列表项从str反序列化为dict:
import json
data = request.POST.getlist('req_data[]', [])
data = [json.loads(item) for item in data]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句