AJAX,Axio异步框架(对原生AJAX封装)。web分区

1.Ajax的理解

以前服务器里的数据,都是存在Servlet域里,然后发给JSP,来进行显示。

有了AJAX,可以和服务器通信。不需要JSP作页面。

可以在Servlet把数据发给浏览器,然后在HTML页面显示。

1.1 以前的方法

1.2 现在的方法

这个方法可以实现前后端分离,JSP的启动需要服务器,需要后端的工程师来开发。

1.3 AJAX异步交互

一般搜东西的时候,搜两个,后面的都显示出来。但整个页面事没有刷新的。

局部更新了数据,这些数据是在数据库里。

 比如注册的时候,输入一个用户名,光标一离开,立马显示是否可注册。

这里就和数据库交互了。

同步:按照12345的顺序挨个进行。请求服务器。

异步:可以不请求服务器,直接执行其他操作。 

2.AJAX快速入门及用法。

步骤:前端写JS,然后和Servlet连用。

w3school 在线教程里找到AJAX的教程案例。

1.现在HTML页面里写一个script,创建核心对象

var xhttp;
if (window.XMLHttpRequest) {
    xhttp = new XMLHttpRequest();
    } else {
    // code for IE6, IE5
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

2.然后用创建的对象向服务器发送请求。

请求服务器端的资源,蓝框的路径得重写。必须是绝对路径:即浏览器里访问的那个路径。

因为前端和后端分离,部署的服务器可能不是同一个。

xhttp.open("GET", "绝对路径(servlet)", true);
xhttp.send();

 

3.获取响应

 xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("demo").innerHTML =
            this.responseText;
       }
    };

里面变量的含义,4就是响应就绪。

responseText,就是我们AJAXServlet里response返回的数据。

 具体操作。

4.结果

xhr的意思就是异步。

3.AJAX案例,验证用户是否存在

 

前端页面 register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    <link href="css/register.css" rel="stylesheet">
</head>
<body>

<div class="form-div">
    <div class="reg-content">
        <h1>欢迎注册</h1>
        <span>已有帐号?</span> <a href="login.html">登录</a>
    </div>
    <form id="reg-form" action="#" method="get">

        <table>

            <tr>
                <td>用户名</td>
                <td class="inputs">
                    <input name="username" type="text" id="username">
                    <br>
                    <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
                </td>

            </tr>

            <tr>
                <td>密码</td>
                <td class="inputs">
                    <input name="password" type="password" id="password">
                    <br>
                    <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
                </td>
            </tr>


            <tr>
                <td>验证码</td>
                <td class="inputs">
                    <input name="checkCode" type="text" id="checkCode">
                    <img src="imgs/a.jpg">
                    <a href="#" id="changeImg">看不清?</a>
                </td>
            </tr>

        </table>

        <div class="buttons">
            <input value="注 册" type="submit" id="reg_btn">
        </div>
        <br class="clear">
    </form>

</div>
<script>
    //给用户名输入框绑定,失去焦点事件
    document.getElementById("username").onblur=function () {
        //获取用户名的值。
        var username=this.value;

        //1.创建核心对象
        var xhttp;
        if (window.XMLHttpRequest) {
            xhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        /*2.发送请求*/
        xhttp.open("GET", "http://localhost:8080//MvcDemo/?username="+username, true);
        xhttp.send();
        /*3. 获取响应*/
        xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("demo").innerHTML =
                    if(this.responseText == "true"){
                        /*用户名存在*/
                        document.getElementById("username_err").style.display='';

                    }else{
                        /*用户名不存在*/
                        document.getElementById("username_err").style.display='none';
                    }
            }
        };



    }
</script>
</body>
</html>

4.Axio异步框架

 提供一些封装好了的AJAX代码来使用。

4.1 AXIOS的使用

get和post两种写法。

post用data属性装值。

不过这个只能发一个参数



4.1.1 配置Axios

把JS文件导入。

4.1.2两种方法的简化。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在Vue 3中使用Axios时,可以通过二次封装来简化其使用。下面是一个示例: 先,安装Axios: ``` npm install axios ``` 然后,在你的项目中创建一个名为`api.js`的文件,用于封装Axios: ```javascript import axios from 'axios'; const instance = axios.create({ baseURL: 'https://api.example.com', // 设置你的API地址 timeout: 5000, // 设置请求超时时间 }); // 请求拦截器 instance.interceptors.request.use( (config) => { // 在发送请求之前做一些处理,例如添加token等 return config; }, (error) => { // 处理请求错误 return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( (response) => { // 对响应数据进行处理,例如解析数据等 return response.data; }, (error) => { // 处理响应错误 return Promise.reject(error); } ); export default instance; ``` 现在,你可以在需要使用Axios的组件中引入`api.js`并发送请求了。例如,你可以在一个名为`UserList.vue`的组件中使用: ```vue <template> <div> <ul> <li v-for="user in userList" :key="user.id">{{ user.name }}</li> </ul> </div> </template> <script> import api from './api.js'; export default { data() { return { userList: [], }; }, mounted() { this.fetchUserList(); }, methods: { fetchUserList() { api.get('/users') .then((response) => { this.userList = response; }) .catch((error) => { console.error(error); }); }, }, }; </script> ``` 在上面的示例中,我们通过引入`api.js`来发送GET请求获取用户列表,并将结果保存在`userList`数据中。 这就是一个简单的Axios二次封装的示例,你可以根据自己的需求进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值