關(guān)于前后端json數(shù)據(jù)的發(fā)送與接收詳解
前言
最近因為筆者后臺使用的是flask框架接收和前端使用的是原生的JavaScript和jQuery的ajax發(fā)送,能力有限,在此僅寫下我開發(fā)項目過程中所得,分享出來供大家參考學(xué)習(xí),下面話不多說,跟著小編來一起看看詳細(xì)的介紹:
一、flask中的json數(shù)據(jù)接收
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)}) # 返回布爾值
二、前端發(fā)送json數(shù)據(jù)
1、原生XMLHttp發(fā)送
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 瀏覽器執(zhí)行代碼
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 瀏覽器執(zhí)行代碼
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");
// 后面這兩部很重要,我看網(wǎng)上很多都是使用xmlhttp.send("username="+username+"&password="+"),這樣接收還要解析一番感覺還是直接發(fā)送以下格式的好些
var data = {
"username": username
"password": password
"remember": remember
};
var data_json = JSON.stringify(data);
xmlhttp.send(data_json);
}
附:json數(shù)據(jù)解析
var text = xmlhttp.responseText;
// 通過eval() 方法將json格式的字符串轉(zhuǎn)化為js對象,并進(jìn)行解析獲取內(nèi)容
var result = eval("("+text+")");
if (result) {
} else {
alert("請輸入正確的用戶名和密碼");
}
2、ajax發(fā)送
$(document).ready(function () {
var data = {
"username": "adamin",
"password": "123456789",
"remember": true
}
$.ajax({
url: "/flask/login",
type: "POST",
data: data,
success: function () {
}
})
})
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持
相關(guān)文章
微信小程序--獲取用戶地理位置名稱(無須用戶授權(quán))的方法
這篇文章主要介紹了微信小程序-獲取用戶地理位置名稱(無須用戶授權(quán))的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Javascript中的var_dump函數(shù)實現(xiàn)代碼
發(fā)現(xiàn)了一個非常好的JavaScript調(diào)試方法,目前看到的是可以打印Object/Array/Function/String四種類型,使用方法和PHP中的var_dump()一樣,只要直接dump(變量名)即可。2009-09-09
echarts堆疊柱狀圖柱子之間間隔開具體實現(xiàn)代碼
ECharts是一個強(qiáng)大的數(shù)據(jù)可視化庫,它的堆疊柱狀圖通常用于比較各個分類的數(shù)據(jù)總量,這篇文章主要給大家介紹了echarts堆疊柱狀圖柱子之間間隔開具體實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-11-11
javascript-簡單的計算器實現(xiàn)步驟分解(附圖)
輸入內(nèi)容的判斷,對于事件對象的來源的判斷以及數(shù)學(xué)運算“+,-,*,/”的使用,感興趣的朋友可以學(xué)習(xí)下2013-05-05

