我正试图用Django/Python处理传入的JSON/Ajax请求。
^{True
,但我不知道JSON数据的有效负载在哪里。
request.POST.dir
包含以下内容:
['__class__', '__cmp__', '__contains__', '__copy__', '__deepcopy__', '__delattr__',
'__delitem__', '__dict__', '__doc__', '__eq__', '__ge__', '__getattribute__',
'__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__',
'__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__setitem__', '__str__', '__weakref__', '_assert_mutable', '_encoding',
'_get_encoding', '_mutable', '_set_encoding', 'appendlist', 'clear', 'copy', 'encoding',
'fromkeys', 'get', 'getlist', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues',
'keys', 'lists', 'pop', 'popitem', 'setdefault', 'setlist', 'setlistdefault', 'update',
'urlencode', 'values']
显然在请求发布密钥中没有密钥。
当我查看Firebug中的POST时,请求中会向上发送JSON数据。
我也有同样的问题。我发布了一个复杂的JSON响应,无法使用request.POST字典读取数据。
我的JSON POST数据是:
在这种情况下,您需要使用aurelus提供的方法。读取request.body并使用json stdlib对其进行反序列化。
如果您将JSON发布到Django,我想您需要
request.body
(request.raw_post_data
在Django<;1.4上)。这将提供通过post发送的原始JSON数据。从那里你可以进一步处理。下面是一个使用JavaScript、jQuery、jquery json和Django的示例。
JavaScript代码:
Django公司:
Django<;1.4条:
方法1
客户端:作为
JSON
发送服务器:
方法2
客户端:发送为
x-www-form-urlencoded
(注:
contentType
&;processData
已更改,不需要JSON.stringify
)服务器:
在1.5+:https://docs.djangoproject.com/en/dev/releases/1.5/#non-form-data-in-http-requests中更改
可能是相关的
相关问题 更多 >
编程相关推荐