django 使用Ajax方式POST JSON数据包
示例1:
js:
function SaveAction(){
//点击 保存按键
var senddata = {"type":"A", "host":"www", "resolution_line":"0", "data":"172.16.2.3", "mx":"5", "ttl":"600"}
$.ajax({
url: "/dns/add.html",
type: "POST", //请求类型
data: {"data":senddata},
dataType: "json", // 这里指定了 dateType 为json后,服务端响应的内容为json.dumps(date),下面 success 的callback 数据无需进行JSON.parse(callback),已经是一个对象了,如果没有指定dateType则需要执行 JSON.parse(callback)
success: function (callback) {
//当请求执行完成后,自动调用
//callback, 服务器返回的数据
console.log(callback);
},
error: function () {
//当请求错误之后,自动调用
}
});
}

django 后台 view:
def record_add(req):
"""
添加解析记录
:param req:
:return:
"""
if req.method == 'POST':
type = req.POST.get('data[type]')
host = req.POST.get('data[host]')
resolution_line = req.POST.get('data[resolution_line]')
data = req.POST.get('data[data]')
mx = req.POST.get('data[mx]')
ttl = req.POST.get('data[ttl]')
print(type, host, resolution_line, data, mx, ttl)
return HttpResponse('hehe')
else:
return HttpResponse('use POST request method please.')
示例2:
JS
function SaveAction(){
//点击 保存按键
var _type = $(".modal-body select[name=type]").val();
var _host = $(".modal-body input[name=host]").val();
var _resolution_line = $(".modal-body select[name=resolution_line]").val();
var _data = $(".modal-body input[name=data]").val();
var _mx = $(".modal-body input[name=mx]").val();
var _ttl = $(".modal-body select[name=ttl]").val();
var senddata = {"type":_type, "host":_host, "resolution_line":_resolution_line, "data":_data, "mx":_mx, "ttl":_ttl }
$.ajax({
url: "/dns/add.html",
type: "POST", //请求类型
//contentType: "application/json; charset=utf-8",
data: senddata,
dataType: "json",
success: function (callback) {
//当请求执行完成后,自动调用
//arg, 服务器返回的数据
console.log(callback);
},
error: function () {
//当请求错误之后,自动调用
}
});
}

django view
def record_add(req):
"""
添加解析记录
:param req:
:return:
"""
if req.method == 'POST':
type = req.POST.get('type')
host = req.POST.get('host')
resolution_line = req.POST.get('resolution_line')
data = req.POST.get('data')
mx = req.POST.get('mx')
ttl = req.POST.get('ttl')
print(type, host, resolution_line, data, mx, ttl)
return HttpResponse('hehe')
else:
return HttpResponse('use POST request method please.')
示例3:
js
function SaveAction(){
//点击 保存按键
var _type = $(".modal-body select[name=type]").val();
var _host = $(".modal-body input[name=host]").val();
var _resolution_line = $(".modal-body select[name=resolution_line]").val();
var _data = $(".modal-body input[name=data]").val();
var _mx = $(".modal-body input[name=mx]").val();
var _ttl = $(".modal-body select[name=ttl]").val();
var senddata = {"type":_type, "host":_host, "resolution_line":_resolution_line, "data":_data, "mx":_mx, "ttl":_ttl }
$.post("/dns/add.html", {'data':JSON.stringify(senddata)},function(callback){
JSON.parse(callback);
});
}
$.post 源码:
jQuery.each( [ "get", "post" ], function( i, method ) {
jQuery[ method ] = function( url, data, callback, type ) {
// shift arguments if data argument was omitted
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = undefined;
}
return jQuery.ajax({
url: url,
type: method,
dataType: type,
data: data,
success: callback
});
};
});

django view
def record_add(req):
"""
添加解析记录
:param req:
:return:
"""
if req.method == 'POST':
data = req.POST.get('data') # str: {"type":"A","host":"www","resolution_line":"0","data":"172.16.2.3","mx":"5","ttl":"600"}
data = json.loads(data) # 字典:{'resolution_line': '0', 'data': '172.16.2.3', 'host': 'www', 'mx': '5', 'ttl': '600', 'type': 'A'}return HttpResponse('hehe')
else:
return HttpResponse('use POST request method please.')
示例4
js $.ajax post提交 json数据
function SaveAction(){
//点击 保存按键
var _type = $(".modal-body select[name=type]").val();
var _host = $(".modal-body input[name=host]").val();
var _resolution_line = $(".modal-body select[name=resolution_line]").val();
var _data = $(".modal-body input[name=data]").val();
var _mx = $(".modal-body input[name=mx]").val();
var _ttl = $(".modal-body select[name=ttl]").val();
var senddata = {"type":_type, "host":_host, "resolution_line":_resolution_line, "data":_data, "mx":_mx, "ttl":_ttl }
$.ajax({
url: "/dns/add.html",
type: "POST", //请求类型
contentType: "application/json; charset=utf-8",
data: JSON.stringify(senddata),
dataType: "json",
success: function (callback) {
//当请求执行完成后,自动调用
//arg, 服务器返回的数据
console.log(callback);
},
error: function () {
//当请求错误之后,自动调用
}
});
}


django view
import json def record_add(req):
"""
添加解析记录
:param req:
:return:
"""
if req.method == 'POST':
body_data = req.body # 获取http请求体数据
print(body_data) # b'{"type":"A","host":"www","resolution_line":"0","data":"172.16.2.3","mx":"5","ttl":"600"}'
print(type(body_data)) # <class 'bytes'>
body_data_str = str(body_data, encoding="utf8") # bytes 转 str
data = json.loads(body_data_str)
print(data['type'])
return HttpResponse('hehe')
else:
return HttpResponse('use POST request method please.')
示例5:
建议使用这种方式
js
function SaveAction(){
//点击 保存按键
var _type = $(".modal-body select[name=type]").val();
var _host = $(".modal-body input[name=host]").val();
var _resolution_line = $(".modal-body select[name=resolution_line]").val();
var _data = $(".modal-body input[name=data]").val();
var _mx = $(".modal-body input[name=mx]").val();
var _ttl = $(".modal-body select[name=ttl]").val();
var senddata = {"type":_type, "host":_host, "resolution_line":_resolution_line, "data":_data, "mx":_mx, "ttl":_ttl }
$.ajax({
url: "/dns/add.html",
type: "POST", //请求类型
data: {'data': JSON.stringify(senddata)},
dataType: "json",
success: function (callback) {
//当请求执行完成后,自动调用
//arg, 服务器返回的数据
console.log(callback);
},
error: function () {
//当请求错误之后,自动调用
}
});
}

js post提交源数据:

django view
def record_add(req):
"""
添加解析记录
:param req:
:return:
"""
if req.method == 'POST':
data = req.POST.get('data')
print(type(data)) # <class 'str'>
data = json.loads(data) # str json序列化 return HttpResponse('hehe')
else:
return HttpResponse('use POST request method please.')
django 使用Ajax方式POST JSON数据包的更多相关文章
- 使用Ajax方式POST JSON数据包(转)
add by zhj: 用ajax发送json数据时注意两点, 第一,使用JSON.stringify()函数将data转为json格式的字符串,如下 data: JSON.stringify({ ...
- 前端学习——使用Ajax方式POST JSON数据包
0.前言 本文解释怎样使用Jquery中的ajax方法传递JSON数据包,传递的方法使用POST(当然PUT又有时也是一个不错的选择).POST JSON数据包相比标准的POST格式可读性更好 ...
- 前端ajax用post方式提交json数据给后端时,网络报错 415
项目框架:spring+springmvc+mybatis 问题描述:前端ajax用post方式提交json数据给后端时,网络报错 415 前端异常信息:Failed to load resource ...
- AJAX如何接收JSON数据
简介 在我们了解如何使用AJAX返回JSON数据的时候要先明白下列几点 1. JSON如何来表示对象的 2. JSON如何来表示数组的 var object = { "labId" ...
- J2EE Web开发入门—通过action是以传统方式返回JSON数据
关键字:maven.m2eclipse.JSON.Struts2.Log4j2.tomcat.jdk7.Config Browser Plugin Created by Bob 20131031 l ...
- jquery通过ajax方法获取json数据不执行success
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
- c# 生成json数据包
json数据类型,归根到底就是一个字符串,管他里面什么格式,它就是一个字符串来的! 看一个json数据包: { "touser":"OPENID", " ...
- jquery通过ajax方法获取json数据不执行success回调
问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述 ...
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
随机推荐
- Oracle性能诊断艺术-读书笔记(脚本execution_plans截图)
- Eclipse用了官方汉化后,无法输入
解决方法:Rclipse右键→属性→兼容性→windows vista
- Bata验收互评
小组的名字和链接 优点 缺点,bug报告 最终名次 编程题全队 ①限制用户重复注册同一个邮箱②注册之后可以弹出用户名,不用手动输入③细节考虑到位④面板可拖动,增删改查,还能添加成员 Q1:程序有什么具 ...
- C++实现String容器的基本功能
本文只实现String类的构造函数.析构函数.赋值构造函数和赋值函数,其他操作不再详述,一般的笔试面试基本上也只会要求实现这四个函数的功能. #include <iostream> usi ...
- HDU 3221 矩阵快速幂+欧拉函数+降幂公式降幂
装载自:http://www.cnblogs.com/183zyz/archive/2012/05/11/2495401.html 题目让求一个函数调用了多少次.公式比较好推.f[n] = f[n-1 ...
- httpclient cookie使用介绍
COOKIE的处理 session的保持是通过cookie来维持的,所以如果用户有勾选X天免登陆,这个session就X天内一直有效,就是通过这个cookie来维持. 如果没有选中x天免登陆,基本上就 ...
- sgu107. 987654321 problem 简单打表 难度:0
107. 987654321 problem time limit per test: 0.25 sec. memory limit per test: 4096 KB For given numbe ...
- property 的详细使用方法
property(fget=None, fset=None, fdel=None, doc=None) 俗话说条条大路通罗马,同样是完成一件事,Python 其实提供了好几个方式供你选择. prop ...
- Apache 子项目 概述
apache HTTP Server--------Web服务器(多用于静态网页,有负载均衡效果,可承受每天数百万人访问).apache Abdera>>>>>>& ...
- DevExpress v17.2新版亮点—ASP.NET篇(一)
用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress ASP.NET v17.2 的GridView Control. ...