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

效果

相关推荐
gnip1 小时前
企业级配置式表单组件封装
前端·javascript·vue.js
一只叫煤球的猫2 小时前
写代码很6,面试秒变菜鸟?不卖课,面试官视角走心探讨
前端·后端·面试
excel3 小时前
Three.js 材质(Material)详解 —— 区别、原理、场景与示例
前端
掘金安东尼3 小时前
抛弃自定义模态框:原生Dialog的实力
前端·javascript·github
databook6 小时前
Manim实现闪光轨迹特效
后端·python·动效
hj5914_前端新手7 小时前
javascript基础- 函数中 this 指向、call、apply、bind
前端·javascript
薛定谔的算法7 小时前
低代码编辑器项目设计与实现:以JSON为核心的数据驱动架构
前端·react.js·前端框架
Hilaku7 小时前
都2025年了,我们还有必要为了兼容性,去写那么多polyfill吗?
前端·javascript·css
yangcode7 小时前
iOS 苹果内购 Storekit 2
前端
LuckySusu7 小时前
【js篇】JavaScript 原型修改 vs 重写:深入理解 constructor的指向问题
前端·javascript