需要传输的是下图中所有的input中客户端设置的数据

整个页面是用js生成,代码不长,但是用了许多拼接,看起来开比较乱,页面的核心就是下面的部分,有一些关键参数部分就不放了,可以跳过这个

下面开始重点,将表单中的数据以json在ajax发送给后端

function btnChange(values) {
var argList=["xxx","xxx","xxx",,
// 。。。这里的关键参数删了
];
var dict = {};
for (var i=0;i<argList.length;i++)
{
dict[argList[i]+"qxl"]=$("input[name="+argList[i]+"qxl]").val();
dict[argList[i]+"kkx"]=$("input[name="+argList[i]+"kkx]").val();
}
console.log(dict); $.ajax({
beforeSend : function(XMLHttpRequest){
//XMLHttpRequest.setRequestHeader("aadfasdfsdfasdsasasdcccc","ajax");
}, url:"/visualPage/getWarningSet/",
type: "POST",
dataType: "json",
data:dict,
complete: function (data) {
//console.log('aaa')
},
success:function(data){
console.log(data);
// window.open("/visualPage/returnWarning","","width=800,height=600");
// $(".text").text(data.message);
},
});
console.log(values.name); //slice(0,-3)
var warningshow=document.getElementById("warning");
warningshow.style.display='block'; }
url为请求的地址,type提交类型(post,get等),dataType这里用json表示提交的数据格式为json,
data这里是要提交的数据,以字典形式,success为服务器成功响应后要执行的函数,

这里的格式和,分割符一定要注意,格式不对不会发送成功

再看视图里面

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def getWarningSet(request):
if request.is_ajax():
#print(request.POST)
elename1=[
"xxx","xxx","xxx",
#这里省略关键参数
]
k=0
while k<len(elename1):
startArgsSet[elename1[k]]["qxl"]=request.POST.get(elename1[k]+'qxl', '')
startArgsSet[elename1[k]]["kkx"]=request.POST.get(elename1[k]+'kkx', '')
k+=1
bxml=dicttoxml.dicttoxml(startArgsSet,custom_root='warning')
xml=bxml.decode('utf-8') dom=parseString(xml)
pxml=dom.toprettyxml(indent=' ')
f=open(os.path.join(settings.BASE_DIR,'visualModule/xmlData/warning.xml'),'w',encoding='utf-8')
f.write(pxml)
f.close()
return 'HTTP_'
  
is_ajax()可以判断是否是ajax请求,如果前段是用get来发送不用检测

直接用request.POST.get("json中的键值")即可获取对应数据

一般通过 return JsonResponse(name_dict)这样来响应给前段数据,我这里没有进行这一步,只返回了一个字符串

return 'HTTP_',

这里是直接将数据转换为xml存储到服务器,只是为了序列化用户的设置,会有别的视图函数来专门解析xml到字典发送到前端,所以我使用ajax只是为了实时存储用户设置,并不会立即反馈给用户。

ajax可以用来来传输json,字典,字符串,数组等格式的数据

下面是ajax另一种格式,比上面的格式简化多了

$.get("/add/",{'a':a,'b':b}, function(ret){
$('#result').html(ret);
})

还有JavaScript原生的用法,需要的可以自行选择

 var xmlhttp;
//创建ajax对象
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} //onreadystatechange 事件中的就绪状态时执行的函数:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText; //xml
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;
}
}
//向服务器发送请求
xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

												

Django和前端用ajax传输json等数据的更多相关文章

  1. Django之AJAX传输JSON数据

    目录 Django之AJAX传输JSON数据 AJAX 中 JSON 数据传输: django响应JSON类型数据: django 响应 JSON 类型数据: Django之AJAX传输JSON数据 ...

  2. Django--多对多表的创建、contentType、ajax、ajax传输json数据格式、ajax传输文件数据、 自定义分页器

    MTV与MVC(了解): MTV模型(Django用的就是MTV): M:模型层(models.py) T:templates C:views MVC模型: M:模型层(models.py) V:视图 ...

  3. Springboot+ajax传输json数组以及单条数据的方法

    Springboot+ajax传输json数组以及单条数据的方法 下面是用ajax传输到后台单条以及多条数据的解析的Demo: 结构图如下: 下面是相关的代码: pom.xml: <?xml v ...

  4. SpringMvc+ajax 实现json格式数据传递

    传JSON对象 前端 function test () { var param = {username : "yitop"}; $.ajax({ timeout : 20000, ...

  5. qt qml ajax 获取 json 天气数据示例

    依赖ajax.js类库,以下代码很简单的实现了获取天气json数据并展示的任务 [TestAjax.qml] import QtQuick 2.0 import "ajax.js" ...

  6. 通过Jquery中Ajax获取json文件数据

    1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : ...

  7. springmvc4.0配置ajax请求json格式数据

    1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar. 2.spring- ...

  8. 前端获取后台传输过来是数据 {张三:12} 解析为[object object],获取其中内容

    昨天遇到前端传输过来的数据为[{张三:12},{李四:23}],后台用的是map格式,我在前端js中暂未找到直接调用对象内容的方法,故利用以下方法来获取: $.each(data.data,funct ...

  9. jQuery中使用Ajax获取JSON格式数据示例代码

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...

随机推荐

  1. Java生鲜电商平台-SpringCloud分布式请求跟踪系统设计与实践

    Java生鲜电商平台-SpringCloud分布式请求跟踪系统设计与实践 Java生鲜电商平台微服务现状 某个服务挂了,导致上游大量报警,如何快速定位哪个服务出问题? 某个核心挂了,导致大量报错,如何 ...

  2. Java SSM 商户管理系统 客户管理 库存管理 销售报表 项目源码

    需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货.库存.销售.客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明.不能有效了解店铺经营情况和客户跟踪记录 厂家 ...

  3. 关于angularjs异步操作后台请求时,用$q.all排列先后顺序的问题

    最近我在做angularjs程序时遇到了一个问题 1.页面有很多选择框,一个选择框里面有众多的选择项,和一个默认选定的项,像下面这样(很多选择框,不只一个): 2.众多的选项要从后台接口得到,默认项从 ...

  4. vue-cli 项目启动过程分析

    启动时没有加入路由 先npm run dev 把项目启动起来.看到 这个熟悉的界面. 首先看到: 这是项目的入口文件,一般引用其他的js,也都是在这个文件进行引用的. 渲染的时候,就是对这个id=&q ...

  5. C#&.Net干货分享-构建后台自动定时任务的源码

    1.创建一个自动处理中心任务参数的类,直接源码: namespace Frame.AutoProcess{    /// <summary>    /// 委托(用于异步处理任务)    ...

  6. TP5 ajax请求报500错误

    场景:几个站点从阿里云迁移到腾讯云,然后 TP5项目 ajax请求报500错误 数据返回成功,但是http状态码是500,不走success,一直走error 如下图: 原因分析: 服务器centos ...

  7. Impala基于内存的SQL引擎的详细介绍

    一.简介 1.概述 Impala是Cloudera公司推出,提供对HDFS.Hbase数据的高性能.低延迟的交互式SQL查询功能. •基于Hive使用内存计算,兼顾数据仓库.具有实时.批处理.多并发等 ...

  8. 如何通过RMAN使用传输表空间迁移到不同的Endian平台 (Doc ID 371556.1)

    How to Migrate to different Endian Platform Using Transportable Tablespaces With RMAN (Doc ID 371556 ...

  9. postman---Postman配置环境变量和全局变量

    我们在测试的过程中,遇到最多的问题也可以是环境的问题了吧,今天开发用了这个测试环境,明天又换了另一个测试环境,这样对于我们测试非常的麻烦,特别最接口的时候需要来回的输入环境地址比较麻烦,今天我们看看强 ...

  10. 201871010126 王亚涛 《面向对象程序设计 (Java)》第十六周学习总结

    内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/12 ...