post请求传参

305 阅读1分钟

前言

wssb.png

如何实现

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>post传参</title>
</head>

<body>
    <form>
        <input type="text" placeholder="请输入姓名" name="username"><br>
        <input type="text" placeholder="请输入年龄" name="age"><br>
        <input type="submit" class="product-list" />
    </form>
    <!-- 显示后端数据 -->
    <p></p>
    <script>
        //获取元素
        const btn = document.querySelector('.product-list')
        const formEle = document.querySelector('form')
        const pEle = document.querySelector('p')
        const usernameInput = document.querySelector('input[name="username"]')
        const ageInput = document.querySelector('input[name="age"]')
        formEle.addEventListener('submit', function (e) {
            //添加监听器,阻止默认行为,获取数据
            e = e || window.event
            e.preventDefault()
            getData()
        })
        function getData() {
            let username = usernameInput.value
            let age = ageInput.value
            // 1. 创建XMLHttpRequest
            let xhr = new XMLHttpRequest()
            // 2. 建立连接
            //通过post方法把参数传给后端
            //content-type: 内容传参类型
            //请求头
            xhr.open('post', `http://10.7.162.138:8888/test/fourth`)
            // 3. 发送请求
            xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
            xhr.send(`name=${username}&age=${age}`)
            // 4. 接收响应数据
            xhr.onreadystatechange = function () {
                // 4.1 是否响应完成
                if (xhr.readyState === 4) {
                    // 4.2 是否成功响应
                    if (xhr.status === 200) {
                        let data = xhr.responseText // 响应内容
                        pEle.innerHTML=data
                        console.log(JSON.parse(data))
                    } else {
                        alert('网络出错 ' + xhr.status)
                    }
                }
            }
        }
    </script>
</body>

</html>

此时将姓名年龄输入后点击提交,可将数据传到后端

screencapture-127-0-0-1-5500-yyds-qianduan-index_post-html-1663760379365.png