示例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数据包的更多相关文章

  1. 使用Ajax方式POST JSON数据包(转)

    add by zhj: 用ajax发送json数据时注意两点, 第一,使用JSON.stringify()函数将data转为json格式的字符串,如下 data: JSON.stringify({   ...

  2. 前端学习——使用Ajax方式POST JSON数据包

    0.前言     本文解释怎样使用Jquery中的ajax方法传递JSON数据包,传递的方法使用POST(当然PUT又有时也是一个不错的选择).POST JSON数据包相比标准的POST格式可读性更好 ...

  3. 前端ajax用post方式提交json数据给后端时,网络报错 415

    项目框架:spring+springmvc+mybatis 问题描述:前端ajax用post方式提交json数据给后端时,网络报错 415 前端异常信息:Failed to load resource ...

  4. AJAX如何接收JSON数据

    简介 在我们了解如何使用AJAX返回JSON数据的时候要先明白下列几点 1. JSON如何来表示对象的 2. JSON如何来表示数组的 var object = { "labId" ...

  5. J2EE Web开发入门—通过action是以传统方式返回JSON数据

    关键字:maven.m2eclipse.JSON.Struts2.Log4j2.tomcat.jdk7.Config Browser Plugin Created by Bob 20131031 l ...

  6. jquery通过ajax方法获取json数据不执行success

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  7. c# 生成json数据包

    json数据类型,归根到底就是一个字符串,管他里面什么格式,它就是一个字符串来的! 看一个json数据包: { "touser":"OPENID", " ...

  8. jquery通过ajax方法获取json数据不执行success回调

    问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述 ...

  9. spring mvc接收ajax提交的JSON数据,并反序列化为对象

    需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...

随机推荐

  1. HDU-4856 Tunnels (BFS+状压DP)

    Problem Description Bob is travelling in Xi’an. He finds many secret tunnels beneath the city. In hi ...

  2. Leetcode 526

    class Solution { public: int countArrangement(int N) { vector<int> nums; ;i <= N;i++) nums. ...

  3. MySQL查询性能优化---高性能(二)

    转载地址:https://segmentfault.com/a/1190000011330649 避免向数据库请求不需要的数据 在访问数据库时,应该只请求需要的行和列.请求多余的行和列会消耗MySql ...

  4. learning scala 变量

    scala 变量: val : 声明时,必须被初始化,不能再重新赋值. scala> test = "only1"<console>:11: error: not ...

  5. SGU 110. Dungeon 计算几何 难度:3

    110. Dungeon time limit per test: 0.25 sec. memory limit per test: 4096 KB The mission of space expl ...

  6. bzoj2662

    题解: spfa最短路径 dp[i][j]表示到i,用了j掌权 然后转移 代码: #include<bits/stdc++.h> using namespace std; ; int n, ...

  7. windowsphone开发页面跳转到另一个dll中的页面

    WP的页面跳转一般是只能跳转到本DLL的页面, 如果要跳转到其他DLL的页面则需要这样写 (Application.Current.RootVisual as PhoneApplicationFram ...

  8. request应用实例

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  9. Linux Mint KDE上安装fcitx+sougou输入法

    今天在韩总废弃的笔记本上安装了Linux Mint系统,装好之后第一件想到的事情就是安装个输入法,由于之前系统自带的输入法框架是ibus,我试用了一下发现很不人性化,所以决定换上fcitx+sougo ...

  10. dataGridView1.DataSource,解决查询结果不从第一行显示,而是不断往表下面扩展问题

    private void 洱海各月出流流量frm_Load(object sender, EventArgs e) { //在查询按钮中用下面这段代码会出现打开数据库出错的现象 MyTable1.Ro ...