~【笔记】尚硅谷Ajax笔记~

点击通往->尚硅谷Ajax视频.

可以先了解node.js:node.js笔记

一、ajax简介

1、ajax全称为Asynchronous JavaScript And XML,就是异步的JS 和XML
2、通过AJAX可以再浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据
3、ajax不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式

二、XML简介

1、可扩展标记语言

2、被设计用来传输和存储数据

3、XML和HTML类似,不同的是HTML中都是预定义标签,而XML中没有预定义标签,全都是自定义标签,由来表示一些数据。就是自己给标签取名字

4、现在被json取代了

三、ajax特点

1、优点

  • 可以无需刷新页面而与服务器端进行通信
  • 允许根据用户事件来更新部分页面内容

2、缺点

  • 没有浏览历史,不能回退
  • 存在跨域问题(同源)
  • SEO不友好(爬取数据)

四、HTTP协议

http协议(超文本传输协议),协议详细规定了浏览器和万维网服务器之间互相通信的规则。

1、请求报文

重点是格式与参数,例如:

行   GET/s?ie=utf-8 HTTP/1.1
头   Host:atguigu.com
     Cookie:name=guigu
     Content-type:application/x-www-form-urlencoded
     User-Agent:chrome 83
空行
体    username=admin&password=admin 

2、响应报文
例如:

行    HTTP/1.1  200  OK
头    Content-Type:text/html;charset=utf-8
      Content-length:2048
      Content-encoding:gzip 
空行   
体     <html> 
   				<head>
   				</head>
   				<body>
   						xxx
   				</body>
       </html>

五、通过原生js进行AJAX操作

1、基本实现

node.js部分:

//引入express框架
const express = require('express');
//创建网站服务器
const app = express();

app.get('/server', (req, res) => {
   
    res.setHeader('Access-Control-Allow-Origin', '*');
    //send()
    //1.send方法内部会检测响应内容的类型
    //2.send方法会自动设置http状态码
    //3.send方法会自动设置响应的内容类型及编码
    res.send('kuangjia');
});
//监听端口
app.listen(3000);
console.log('网站服务器启动成功');

网页部分:

<!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>Document</title>
    <style>
        #result {
     
            width: 200px;
            height: 100px;
            border: solid 1px pink;
        }
    </style>
</head>

<body>
    <button id="btn">点击发送请求</button>
    <div id="result"></div>
    <script>
        const btn = document.getElementById("btn");
        const result = document.getElementById("result");
        btn.onclick = function() {
     
            //1.创建对象
            const xhr = new XMLHttpRequest();
            //2.初始化,设置请求方式和url
            xhr.open('GET', 'http://localhost:3000/server');
            //3.发送
            xhr.send();
            //4.事件绑定 处理服务器端返回的结果
            //on when 当...什么时候
            //readystate 是xhr对象中的属性,表示状态0 1 2 3 4
            //change 改变
            xhr.onreadystatechange = function() {
     
                //判断
                if (xhr.readyState == 4) {
     
                    //判断响应状态码 200 404 403 401 500
                    //2xx都是成功
                    if (xhr.status >= 200 && xhr.status < 300) {
     
                        //处理结果 行 头 空行 体
                        //响应 行
                        console.log(xhr.status); //状态码
                        console.log(xhr.statusText); //状态字符串
                        console.log(xhr.getAllResponseHeaders()); //所有响应头
                        console.log(xhr.response); //响应体

                        result.innerHTML = xhr.response;
                    }
                }
            }
        }
    </script>
</body>

</html>

启动服务器后,网页中点击按钮就可以不刷新向服务器发送请求,服务器并响应:
在这里插入图片描述
在这里插入图片描述
2、设置url参数
直接加参数,例如:

xhr.open('GET','http://localhost:3000/server?a=100&b=200');

3、发送POST请求
上面是实现的GET请求,把GET改为POST:

xhr.open('POST','http://localhost:3000/server);

node,js部分的路由规则也要改:

app.post('/server', (req, res) => {
   
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.send('kuangjia');
});

4、POST设置请求体(url参数)
post中请求体在send方法中设置:

xhr.send('a=100&b=200');

5、设置请求头
用setRequestHeader方法设置

xhr.setRequestHeader('Content-type','application/x-www-form-lencoded')

6、服务端响应JSON数据

先了解JSON的两种方法:

  • 将对象转化为JSON格式:JSON.stringify()
  • 将JSON格式转化为对象:JSON.parse()

服务器端如果响应的是对象:

app.get('/server', (req, res) => {
   
    res.setHeader('Access-Control-Allow-Origin', '*');
    const data = {
   
        name: 'zhangsan',
        age: 8
    }
    res.send(data);
});

前端可以通过parse转化为对象:

let data = JSON.parse(xhr.response);
console.log(data);
result.innerHTML = data.name + data.age;

在这里插入图片描述
在这里插入图片描述
7、请求超时与网络异常处理
现在服务器端将响应写在一个定时器中,模拟网络超时:

app.get(
  • 4
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 尚硅谷Vue2笔记是学习Vue技术的好帮手。这份笔记详细地介绍了Vue的基本概念和使用方法,包括Vue的属性、指令、事件、计算属性、过滤器、组件等等。通过阅读这份笔记,我们可以了解Vue的整个生命周期,并且学习如何在Vue中绑定数据、响应事件、使用组件化等等。另外,笔记中也提到了Vue的MVVM模式、路由、状态管理、Ajax等进阶使用方法,以及Vue的一些注意点和优化技巧,这些非常实用且有助于深入学习和应用Vue技术。 总体来说,尚硅谷Vue2笔记内容丰富、清晰易懂,适合初学者和中级开发者使用,是学习Vue技术的一份不错资料。需要注意的是,笔记中的代码及部分内容可能存在过时和不准确的情况,需要和Vue官方文档及其他权威资料进行比较和验证。 ### 回答2: 尚硅谷Vue2笔记是一份非常全面和深入的Vue学习资料,它涵盖了Vue框架的基本概念和重要特性,包括Vue的组件化开发、指令、路由、Vuex状态管理、axios网络请求等。该笔记不仅注重理论知识的讲解,而且注重实战应用。它提供了大量的示例代码和练习项目,帮助学习者理解和掌握Vue的核心概念和技术。 在Vue2笔记中,作者从Vue的基本概念和MVVM架构模式开始讲解,然后逐步深入介绍了Vue的各种特性和用法,如组件、生命周期、计算属性、watch、事件处理、槽位、指令等等。特别是在组件化开发方面,作者详细介绍了组件之间的通信方式、props和$emit的使用、slot插槽的应用等等,这些都是Vue组件化开发中非常重要的概念。 除了组件化开发之外,Vue2笔记还详细介绍了Vue的路由、状态管理和网络请求等其他关键特性。在路由方面,作者讲解了Vue-Router的基本使用和路由守卫的应用,让学习者能够掌握Vue应用的页面导航和权限控制。在状态管理方面,作者讲解了Vuex的设计思想和使用方法,使学习者能够在复杂的应用中更好地管理和共享状态。在网络请求方面,作者介绍了axios库的使用和封装方法,帮助学习者更好地理解Vue应用中的数据请求和展示。 总的来说,尚硅谷Vue2笔记对于学习Vue框架的人来说是一份非常优秀的教材。它详细介绍了Vue的各个方面,并提供了丰富的练习项目,帮助学习者更好地掌握Vue的核心技术和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东篱_Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值