Существует клиентский JavaScript и серверный Python, работающий от Django. Существует объект данных: foo_data = {"foo":1, "bar":2}
.Отправить объект JSON через POST с JavaScript на Python
Теперь я хотел бы отправить пост-запрос, используя dojo/request/xhr
и отправить foo_data
вместе с другой переменной:
xhr.post(document.location.href, {
data: {
'is_foo': true,
'data': foo_data
},
headers: { 'Content-Type': 'application/json' }
}).then(function(text){
console.log('The server returned: ', text);
});
А потом читать посылать данные в views.py
файле Джанго:
def post(self, request, *args, **kwargs):
json.loads(request.body)
НО, это не работает:
- если у меня есть
foo_data
, python не распознает его правильно как объект JSON и не может прочитать его, используяjson.loads
. - Я не могу закодировать
foo_data
используяJSON.parse
, потому что это уже объект! request.POST
является пустойQueryDict
request.body
имеет строку словоobject
(вместо реального объекта)
Любые идеи, как решить эту проблему?
Цель: отправить объект JSON из JS -> Python и прочитать его на серверной стороне.