1

所以我有一个 AJAX post JSON to Django,在我看来是在 request.body 中提取的。Request.body 看起来像这样:

{"c": {"cellid": 5}, "b": {"cellid": 8}, "e": {"cellid": 3}, "i": {"cellid": 9}, "k": {"cellid": 11}, "j": {"cellid": 10}, "l": {"cellid": 12}, "n": {"cellid": 7}, "q": {"cellid": 1}, "r": {"cellid": 4}, "w": {"cellid": 2}, "v": {"cellid": 6}}

我想将其放入 JSON 对象中以进行验证和清理过程,但是,当我尝试时:

json.loads(request.body)
ValueError: No JSON object could be decoded

SimpleJSON 说:

simplejson.loads(request.body)
JSONDecodeError: Expecting value: line 1 column 1 (char 0)

关于出了什么问题的任何指示?当我对上面的 JSON lint 进行处理时,它是有效的,那么解码有什么问题?

有趣的是,从这个问题来看,这似乎是 jQuery 的错,因为

jQuery.ajaxSettings.traditional = true;

修复了javascript中的问题。我不确定为什么会这样,有什么想法吗?

4

1 回答 1

0

视图.py

from django.template.loader import render_to_string
from django.utils import simplejson
if form.is_valid():
template = "my_template.html"
html = render_to_string(template,{"c": {"cellid": 5}, "b": {"cellid": 8}, "e": {"cellid": 3}, "i": {"cellid": 9}, "k": {"cellid": 11}, "j": {"cellid": 10}, "l": {"cellid": 12}, "n": {"cellid": 7}, "q": {"cellid": 1}, "r": {"cellid": 4}, "w": {"cellid": 2}, "v": {"cellid": 6}})
response = simplejson.dumps({'success':'True','html':html})

try it, it should work.
于 2013-07-20T09:40:17.333 回答