通过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()

效果

相关推荐
2601_965798473 分钟前
Contractor Web Setup: Deploying Bathrooms & Kitchens Theme Fast
前端·web3·php·wordpress
Dxy12393102166 分钟前
Python XPath position() 完整使用指南,避坑合集(lxml适用)
前端·javascript·python
AndrewHZ9 分钟前
图像处理入门009 | OpenCV 图像读取与显示:imread/imshow 全解析
图像处理·python·opencv·算法·计算机视觉·图像显示
晴天1614 分钟前
HarmonyOS 和 React 对比-Day22
前端·华为·harmonyos
卷无止境16 分钟前
手写 SQL 在 Tortoise ORM 里到底能派上什么用场
后端·python·fastapi
海鸥两三17 分钟前
【websocket合集2】websocket.js源码解析和页面调用示例
javascript·websocket·网络协议
梅孔立19 分钟前
Docker 部署 Python3\.11 Flask爬虫项目 终极稳定教程(解决线程报错/挂载失效/pip报错)
爬虫·docker·flask
龙虾PRO19 分钟前
2026 DeepSeek Harness 部署完整教程:npx 一键启动至 Python SDK 全流程接入
开发语言·python
卷无止境19 分钟前
FastAPI、Tortoise ORM 与 PostgreSQL 三件套 是否好用呢?
后端·python·fastapi
AlienZHOU7 小时前
DeepSeek Harness 插件:HTML 实时可视化编辑
前端·agent·deepseek