Djangoを利用したクライアントサイドのJavaScriptとサーバーサイドのPythonがあります。データオブジェクトは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);
});
そしてDjangoのviews.py
ファイルで送信されたデータを読む:
def post(self, request, *args, **kwargs):
json.loads(request.body)
しかし、それは動作しません:
- もし私がssend
foo_data
PythonはそれをJSONオブジェクトとして正しく認識せず、json.loads
を使って読み取ることができません。 foo_data
を使用してJSON.parse
をエンコードすることはできません。既にオブジェクトですから!request.POST
は空QueryDict
request.body
でこの問題を解決する方法を、文字列の単語object
(代わりに、実際のオブジェクトの)
に任意のアイデアを持っていますか?
目標:JS - > PythonからJSONオブジェクトを送信し、サーバー側でそれを読み取ります。