关于前后端json数据的发送与接收详解


Posted in Javascript onJuly 30, 2017

前言

最近因为笔者后台使用的是flask框架接收和前端使用的是原生的JavaScript和jQuery的ajax发送,能力有限,在此仅写下我开发项目过程中所得,分享出来供大家参考学习,下面话不多说,跟着小编来一起看看详细的介绍:

一、flask中的json数据接收

1、利用flask的request.form.get()方法

Python后台部分代码

from flask import Flask
from flask import jsonify
from flask import request
import json
...

# 登录
@app.route("/flask/login", methods=['POST'])
def login():
 data_ = request.form.get('data')
 data = json.loads(data)
 username = data['username']
 password = data['password']
 rem = False
 if data['remember']:
  rem = True
 return jsonify({"login": Login.login(username, password, rem)}) # 返回布尔值

2、 利用flask的request.get_data()方法

Python后台代码

from flask import Flask
from flask import jsonify
from flask import request
import json
...

# 登录
@app.route("/flask/login", methods=['POST'])
def login():
 data = request.get_data()
 data = json.loads(data)
 username = data['username']
 password = data['password']
 rem = False
 if data['remember']:
  rem = True
 return jsonify({"login": Login.login(username, password, rem)}) # 返回布尔值

3、利用flask的request.get_json()方法

Python后台代码

from flask import Flask
from flask import jsonify
from flask import request

...

# 登录
@app.route("/flask/login", methods=['POST'])
def login():
 data = request.get_json()
 username = data['username']
 password = data['password']
 rem = False
 if data['remember']:
  rem = True
 return jsonify({"login": Login.login(username, password, rem)}) # 返回布尔值

二、前端发送json数据

1、原生XMLHttp发送

function login() {
 var username =document.getElementById("username").value;
 var password = document.getElementById("password").value;
 var remember =document.getElementById("remember").checked;
 var xmlhttp;
 if (window.XMLHttpRequest)
 {
  // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
  xmlhttp=new XMLHttpRequest();
 }
 else
 {
  // IE6, IE5 浏览器执行代码
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
 xmlhttp.onreadystatechange=function()
 {
  if (xmlhttp.readyState===4 && xmlhttp.status===200)
  {
   ...
  }
 };

 xmlhttp.open("POST","/flask/login",true);
 xmlhttp.setRequestHeader("Content-type","application/json");
 // 后面这两部很重要,我看网上很多都是使用xmlhttp.send("username="+username+"&password="+"),这样接收还要解析一番感觉还是直接发送以下格式的好些
 var data = {
  "username": username
  "password": password
  "remember": remember
 };
 var data_json = JSON.stringify(data);
 xmlhttp.send(data_json);
}

附:json数据解析

var text = xmlhttp.responseText;
 // 通过eval() 方法将json格式的字符串转化为js对象,并进行解析获取内容
 var result = eval("("+text+")");
 if (result) {
    
  } else {
    alert("请输入正确的用户名和密码");
   }

2、ajax发送

$(document).ready(function () {
 var data = {
 "username": "adamin",
 "password": "123456789",
 "remember": true
 }
 $.ajax({
  url: "/flask/login",
  type: "POST",
  data: data,
  success: function () {
   
  }
 })
 })

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Javascript 相关文章推荐
ExtJs扩展之GroupPropertyGrid代码
Mar 05 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
jquery如何扑捉回车键触发的事件
Apr 24 Javascript
jQuery学习笔记之总体架构
Jun 03 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
Nov 25 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
基于js中的原型(全面讲解)
Sep 19 Javascript
浅谈vue引用静态资源需要注意的事项
Sep 28 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 Javascript
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
jquery easyui如何实现格式化列
Jul 30 #jQuery
微信小程序对接七牛云存储的方法
Jul 30 #Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
Jul 30 #Javascript
Vue自定义指令详解
Jul 28 #Javascript
ReactNative踩坑之配置调试端口的解决方法
Jul 28 #Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 #Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 #Javascript
You might like
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
php 地区分类排序算法
2013/07/01 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
JS typeof fn === 'function' && fn()详解
2020/08/22 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
Python SQLite3数据库操作类分享
2014/06/10 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
装潢设计实习自我鉴定
2013/09/19 职场文书
儿媳婚宴答谢词
2014/01/14 职场文书
个人实习生的自我评价
2014/02/16 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
2014年教务处工作总结
2014/12/03 职场文书
党风廉政建设调研报告
2015/01/01 职场文书