ajax POST以及接收
这里其实有个小问题。首先发送到后端的东西,一定是保存到request.body 里面,然后可能会根据dataType 或者headers的content-Type 进行解析,如果正确的话,会把解析的结果放在request.POST 里面,如果这个类型写的有问题或者内容错误无法解析,后端接收到的request.POST 就是空。
前端js
Type可为:POST、DELETE、GET和PUT data可为Data或者直接一个字典 这里返回的是一个json,所以JSON.parse() 解析一下
<script type="text/javascript">
function balabala(ID){
Data={};
Data.id=ID;
$.ajax({
url:"/app/balabaal/",
type:"POST",
data:{'virtual_node_id':VirtualNodeID},
success:function(data){
data=JSON.parse(data);
if (data.status == false){
alert("出现错误:"+data.message);
}else{
alert('完成');
}
},
error:function(){
alert("发生未知错误");
}
});
}
</script>
然后前端的数据也可以这么构造,在前端构造好json,然后不指定数据格式,它会自动指定,填充Data就好了,如果直接发列表会出现问题。 然后呢data 里面一定要像这样写成一个字典,不然后端会默认把整个Data当成键,而没有值。
var task =
{
"id":"",
"ype":'创建',
...
"username":'demo',
"task" :[balabala]
}
var Data=JSON.stringify(task);
$.ajax({
url:"/app/balabaal/",
type:"POST",
data:{'task':Data},
success:function(data){
data=JSON.parse(data);
if (data.status == false){
alert("出现错误:"+data.message);
}else{
alert('完成');
}
},
error:function(){
alert("发生未知错误");
}
});
后端django
ID=request.POST['id']
...
return HttpResponse(json.dumps({'status':True}))
ajax GET
使用ajax通过get方式向后端发送请求获取数据。
django文件传输
用post方式发送文件,把文件放在files里,字典放在body里面,不能设置content-Type 。 requests.post(URL,headers=headers,data=Body,files={‘image-file’:open(LocalFilePath,‘rb’)}) 然后获取的话,request.POST和request.FILES.getlist(‘xxx’) 。
|