Day17_1--AJAX学习之GET/POST传参

AJAX 简介

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。其实AJAX就可以理解为就是JS。通过AJAX也就实现了前后端分离,前端只写页面,后端生成数据!

现在开始通过实例学习:

1--GET传参

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script>
    function ajax2() {
        //0:获取input内容
        let user = document.querySelector(".user").value;
        let pwd = document.querySelector(".pwd").value;
        //1:创建ajax对象
        let xmlHttpRequest = new XMLHttpRequest();
        //2:配置后端请求--get请求参数用?和&来传参数
        xmlHttpRequest.open("get", "/stage1_war_exploded/ajax2?user="+user+"&pwd="+pwd, true)
        //3:发送请求
        xmlHttpRequest.send();
        //4:监听数据是否请求成功
        xmlHttpRequest.onreadystatechange = function () {
            //5:如果服务器成功解析数据则readyState=4,如果后端成功返回数据则state=200
            if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
                //6:获取后端数据
                let data = xmlHttpRequest.responseText;
                //7:将数据插入前端页面
                document.getElementById("show").innerHTML = data;
            }
        }
    }
    </script>
<body>
<div id="show" style="border: 1px red; width: 200px;height: 100px">
</div>
账号<input type="text" class="user"><br>
密码<input type="text" class="pwd"><br>
<button onclick="ajax2()">提交</button>//当点击按钮后,调用ajax2()方法
</body>
</html>

2--后端生产数据

java 复制代码
@WebServlet("/ajax2")
public class ajax2 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置编码
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //后端获取get方式的参数就用getParameter
        String user = req.getParameter("user");
        String pwd = req.getParameter("pwd");
        PrintWriter writer = resp.getWriter();
        //将后端数据返回给前端
        writer.write("后端数据来了"+user+"-----"+pwd);
    }
}

3--POST传参

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script>
    function ajax2() {
        //0:获取input内容
        let user = document.querySelector(".user").value;
        let pwd = document.querySelector(".pwd").value;
        //1:创建ajax对象
        let xmlHttpRequest = new XMLHttpRequest();
        //2:配置后端请求
        xmlHttpRequest.open("post", "/stage1_war_exploded/ajax2", true);
        //3:发送请求
        //3_1:post请求必须设置请求头--一个单词都不能错:固定写法
        xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        //3_2:发送请求和post参数---------------------其他地方和get相同
        xmlHttpRequest.send("user=" + user + "&pwd=" + pwd);
        //4:监听数据是否请求成功
        xmlHttpRequest.onreadystatechange = function () {
            //5:如果服务器成功解析数据则readyState=4,如果后端成功返回数据则state=200
            if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
                //6:获取后端数据
                let data = xmlHttpRequest.responseText;
                //7:将数据插入前端页面
                document.getElementById("show").innerHTML = data;
            }
        }
    }
</script>
<body>
<div id="show" style="border: 1px red; width: 200px;height: 100px">
</div>
账号<input type="text" class="user"><br>
密码<input type="text" class="pwd"><br>
<button onclick="ajax2()">提交</button>
</body>
</html>
相关推荐
Sun_light3 分钟前
6个你必须掌握的「React Hooks」实用技巧✨
前端·javascript·react.js
爱学习的茄子5 分钟前
深度解析JavaScript中的call方法实现:从原理到手写实现的完整指南
前端·javascript·面试
莫空00006 分钟前
Vue组件通信方式详解
前端·面试
呆呆的心6 分钟前
揭秘 CSS 伪元素:不用加标签也能玩转出花的界面技巧 ✨
前端·css·html
susnm10 分钟前
Dioxus 与数据库协作
前端·rust
优雅永不过时_v15 分钟前
基于vite适用于 vue和 react 的Three.js低代码与Ai结合编辑器
前端·javascript
小皮侠17 分钟前
nginx的使用
java·运维·服务器·前端·git·nginx·github
WildBlue18 分钟前
🧊 HTML5 王者对象 Blob - 二进制世界的魔法沙漏
前端·javascript·html
啷咯哩咯啷22 分钟前
Vue3构建低代码表单设计器
前端·javascript·vue.js
用户261245834016124 分钟前
vue学习路线(10.监视属性-watch)
前端·vue.js