需要传输的是下图中所有的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. 教你用Python实现免费蹭WiFi,只要有WiFi的地方,你就不会断网!

    想象一下,程序员没有WIFI会怎样? 程序员没有网络肯定会寸步难行! 但是对于Python程序员来说,只要附近有热点,分分钟就能蹭网成功! 想要WIFI破解,python+字典,这是必少不了的.热点加 ...

  2. PHP简单判断当前使用的是什么浏览器

    PHP简单判断当前使用的是什么浏览器,判断浏览器类型的方法,方便统计网站访问用户使用浏览器的比例. 判断浏览器类型方法 function userBrowser() { $user_OSagent = ...

  3. 踏实型的TOGAF企业架构学习者要学什么?

    下载:本文PDF版 昨天有帮友在IT帮大本营微信群了问到 我打开ea网站的常见问题,截图回复了一下 如果让我再简单说一下该学什么,我想用下面这张图来说明 实操型的看 企业架构,从理论到实践 认证型的看 ...

  4. OpenCV:增加和减少图像的亮度,图像的加减法

    首先导包: import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(imag ...

  5. 一文解读HTTP (转)

    先扒一扒HTTP协议背景? HTTP(HyperText Transfer Protocol) 即超文本传输协议,现在基本上所有web项目都遵从HTTP协议(协议就是一种人为的规范). 目前绝大部分使 ...

  6. linux下关闭selinux

    找到 /etc/sysconfig/selinux 文件 修改 SELINUX=enable 使之 SELINUX=disable 重启 reboot

  7. macOS 安装 Docker Desktop CE(转)

    现在基本上都使用docker进行部署项目,所以还是有必要学习下,关于docker的简介这里就不在描述,本文转载自https://yeasy.gitbooks.io/docker_practice/co ...

  8. CSP2019游记(翻车记)

    Preface 也许是人生中最重要的一场比赛了(再进不了冬令营我就没了) 结果不论怎样,想必也都是人生中的一次分水岭吧 从暑假开始到今天的一段时间,自己似乎终于找到了学OI的动力与乐趣.能认识到更多志 ...

  9. 【C#】C#中的HtmlEncode与HtmlDecode:HttpUtility.HtmlEncode,HttpUtility.HtmlDecode,Server.HtmlEncode,Server.HtmlDecode,WebUtility.HtmlEncode,WebUtility.HtmlDecode

    HtmlEncode(String) 将字符串转换为 HTML 编码字符串. HtmlDecode(String) 将已经为 HTTP 传输进行过 HTML 编码的字符串转换为已解码的字符串. 在we ...

  10. 一个python问题引发的思考

    问题: pyqt5下开发的时候,遇到了一个这样的问题.Traceback (most recent call last):File “test.py”, line 3, in from PyQt5.Q ...