前后端json数据发送和吸收
因为笔者背景运用的是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 () {
}
})
})