通过html页面向后端传递JSON数据

通过html页面向后端传递JSON数据

  • 前端:HTML、JavaScript
  • 后端:FLask
  • 前端发送JSON格式数据,后端接收数据并响应

代码实现

前端

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index</title>
    <script src="{{ url_for("static", filename="jquery.js") }}"></script>
</head>
<body>
    <br>
    <h2 style="text-align: center;">测试数据传递</h2>
    <div style="text-align: center;">
        <br>
        <input id="topic" type="text" placeholder="请输入主题"><br><br>
        <input id="payload" type="text" placeholder="请输入内容"><br><br>
        <button onclick="sendData()">发送</button>
    </div>


    <script>
        function sendData() {
            // 获取输入框中的数据
            const topic = document.getElementById('topic').value;
            const payload = document.getElementById('payload').value;
            console.log(topic,payload);
            // 将数据转换为json格式
            const jsonData = JSON.stringify({"topic":topic,"payload":payload})
            console.log("本次提交数据:",jsonData);

            // 创建XMLHttpRequest对象
            const xhr = new XMLHttpRequest();
            // 设置POST请求,并指定后端接收数据的URL
            xhr.open("POST", "/publish", true);
            // 设置请求头,指定发送的数据类型为JSON
            xhr.setRequestHeader("Content-Type", "application/json");
            // 处理响应数据
            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4 && xhr.status === 200) {
                    // 执行成功后,后端返回的数据
                    var response = JSON.parse(xhr.responseText);
                    console.log("本次提交响应的数据:",response);
                } else if (xhr.readyState === 4) {
                    console.error('请求失败,服务器无响应');
                }
            };
            // 发送请求,并将JSON数据作为请求体发送给后端
            xhr.send(jsonData);
        }
    </script>
</body>
</html>

Flask后端

python 复制代码
@app.route('/publish', methods=['POST'])
def publish_message():
    """ 获取前端页面提交的数据 """
    # 格式化数据
    request_data = request.get_json()
    print(request_data)
	# 响应
    return jsonify({"code": "200", 'status': 'success'})


if __name__ == '__main__':
    app.debug = True
    app.run()

效果

相关推荐
一袋米扛几楼9833 分钟前
【软件安全】什么是XSS(Cross-Site Scripting,跨站脚本)?
前端·安全·xss
向上的车轮34 分钟前
Actix Web适合什么类型的Web应用?可以部署 Java 或 .NET 的应用程序?
java·前端·rust·.net
XiaoYu20021 小时前
第1章 核心竞争力和职业规划
前端·面试·程序员
excel1 小时前
🧩 深入浅出讲解:analyzeScriptBindings —— Vue 如何分析 <script> 里的变量绑定
前端
Python图像识别1 小时前
75_基于深度学习的咖啡叶片病害检测系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
python·深度学习·yolo
蓝瑟1 小时前
AI时代程序员如何高效提问与开发工作?
前端·ai编程
闲人编程1 小时前
Python游戏开发入门:Pygame实战
开发语言·python·游戏·pygame·毕设·codecapsule
林晓lx1 小时前
使用Git钩子+ husky + lint语法检查提高前端项目代码质量
前端·git·gitlab·源代码管理
雍凉明月夜2 小时前
人工智能学习中深度学习之python基础之 类
python·学习
王同学要变强2 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习