通过POST将JSON对象从JavaScript发送到Python
有一个客户端JavaScript和服务器端Python,由Django提供支持。有一个数据对象:通过POST将JSON对象从JavaScript发送到Python,javascript,python,json,django,dojo,Javascript,Python,Json,Django,Dojo,有一个客户端JavaScript和服务器端Python,由Django提供支持。有一个数据对象:foo_data={“foo”:1,“bar”:2} 现在,我想使用dojo/request/xhr发送一个post请求,并将foo_data与另一个变量一起发送: xhr.post(document.location.href, { data: { 'is_foo': true, 'data': foo_data }, headers: { '
foo_data={“foo”:1,“bar”:2}
现在,我想使用dojo/request/xhr
发送一个post请求,并将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)
但是,它不起作用:
- 如果我发送
,python将无法正确地将其识别为JSON对象,并且无法使用foo_data
读取它JSON.loads
- 我无法使用
JSON.parse对
foo_数据进行编码,因为它已经是一个对象了李>
是一个空的request.POST
QueryDict
具有字符串词request.body
(而不是真实对象)object
目标:从JS--Python发送JSON对象,并在服务器端读取它。
require(dojo/request"],
function(request){
// post the data to the server
request.post("your/server/script", {
// send your data here
data: { yourData: 1},
// wait 2 seconds for a response
timeout: 2000
}).then(function(response){
// do smt here when operation is successfully executed
});
}
);
关于问题中的代码示例,您尚未发布服务器端代码。但是您可以尝试使用JSON.stringify()
将数据传递到服务器