我试图弄清楚如何在Django中处理POSTed json对象。我正在将json对象发布到服务器,并希望像python字典一样使用它。
这是我的js:
$.post(
"/projects/vote/",
obj,
function(data) {
//alert("Data Loaded: " + data);
alert(data["msg"]);
});
我要返回的内容(Django视图的结尾):
return HttpResponse(json.dumps(foo), mimetype="application/json")
哪里
foo = {"msg": str(postdata)}
换句话说,我正在将json对象发布到服务器,并提醒我在服务器上获取的python对象的字符串,以便我可以看到发生了什么。
如果我的obj是:
var obj = {
'bulk': false,
'data': {
'chosen': '14',
'proj1': '15',
'proj2': '14',
'proj3': '16',
'more': false,
},
'data2': [
{
'a': 'apple'
},
{
'b': 'banana'
},
],
}
我得到这个回报:
<QueryDict: {u'data[proj3]': [u'16'], u'data[proj2]': [u'14'], u'data[chosen]': [u'14'], u'data[proj1]': [u'15'], u'bulk': [u'false'], u'data2[0][a]': [u'apple'], u'data[more]': [u'false'], u'data2[1][b]': [u'banana']}>
json obj和python dict的结构为什么不对齐?以及如何使结构相同?例如代替data2 [0] [a],我将把data2作为另一本字典的键
我如何获取后数据:
# django version 1.4
postdata = request.POST.copy()
javascript大神给出的解决方案
您可以使用JSON.stringify
将json作为纯字符串发布,如下所示:
$.post(
"/projects/vote/",
{msg: JSON.stringify(obj)},
function(data) {
//alert("Data Loaded: " + data);
alert(data);
});
因此,在服务器端,您应该从'msg'
中提取request.POST
:
def view(request):
return HttpResponse(request.POST['msg'], mimetype="application/json")
请注意,某些浏览器默认不支持JSON.stringify
,您可能要使用json lib:https://github.com/douglascrockford/JSON-js
我正在使用onclick事件从PHP调用JS函数。这是我的代码:我在一个函数中,因此我需要通过PHP来完成它,因为然后我会返回:$html = '<input type="checkbox" checked value="1" id="setGetSku" name="se…
如何防止SQL使用单引号字符存储转义字符 - javascript我需要存储在开头和结尾都带有单引号的文本字符串。我正在从PHP发布JavaScript命令。我将引号添加到这样的字符串中:echo '<script type="text/javascript">'; echo 'function GetCodes() {'; echo 'va…
提交初始化后删除某些帖子数据 - javascript在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …
Ajax功能后没有数据传递到URL - javascript这是我使用Ajax将参数传递到另一个PHP页面的脚本。 $(document).on( "click",".btndriver", function() { var id = $(this).attr("id"); var nombre = $(this).attr("nombre…
通过相同的ID名称分配和获取值 - javascript我正在使用x-editable http://vitalets.github.io/x-editable/index.html jQuery Inplace编辑器。目前,我有一个如下的工作代码:<?php $num_rows = 1; // store the record of the "tblstudent" table int…