Ajax速通(一)——前置知识

Ajax前置知识

HTTP协议

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

主要规定了两块内容:请求和响应。
该内容可大致知道,不需要刻意记住

请求报文

这里重点介绍格式与参数

请求行:包含三部分 1. 请求类型(如get) 2.url路径(域名后面的内容,3. HTTP协议版本) 

请求头:Host:www.baidu.com
	   Cookie:.....
	   Content-Type:....
	   User-Agent:....	
	 
空行

请求体:get请求该内容为空,post请求该内容可以不为空

在这里插入图片描述

响应报文

结构与请求报头相同

响应行:HTTP版本(HTTP/1.1) 响应状态码(200) 响应字符串 (OK)

响应头:Content-Type:text/html;charset=utf-8
        Content-length: 2048
        Content-encoding: gzip
       
空行

响应体:<html>
            <head></head>
            <body></body>
        </html>

在这里插入图片描述
在这里插入图片描述

nodejs安装

官网下载好nodejs。
在这里插入图片描述
下载完毕后,通过cmd输入node -v检查是否安装好
在这里插入图片描述

express框架的安装

为了测试Ajax,我们需要用到一些express框架的一部分操作,很简单。

  1. 以管理员身份打开VS Code,最外层的文件用英文命名。最好所有文件都用英文命名
    在这里插入图片描述
  2. 在终端输入 npm init --yes
    在这里插入图片描述
  3. 安装express框架 npm i express
    在这里插入图片描述

express的基本使用

// 1. 引入express
const { response } = require('express'); // 这个是自动创建的,不需要可以去写
const express =require('express');

// 2. 创建应用对象
const app= express();

// 3. 创建路由规则:
// 第一个参数为路径,即必须在地址后加上/s才能访问到
// 第二个参数是回调函数

// request  是对请求报文的一个封装
// response 是对响应报文的一个封装
app.get('/s',(request,response)=>{
    // 设置响应 ,response.send();即发送响应体回去
    response.send('HELLO EXPRESS');

});

//  4. 监听端口,启动服务
app.listen(8000,()=>{
    console.log('服务已经启动,8000端口监听中.....')
})

示例测试

第一步:打开服务端
在这里插入图片描述
第二步:向服务端发送请求,该代码以后会详细解释,现在只用来测试

<!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: 1px solid;
        }
    </style>
</head>
<body>
    <button>点击我发送请求</button>
    <div id="result"></div>
    <script>
        // 获取元素
        const btn=document.querySelector('button');
        const result=document.querySelector('#result');
        // 绑定事件
        btn.addEventListener('click',function(){
            // 创建对象
            const xhr=new XMLHttpRequest();
            // 初始化对象,第一个参数为请求方式,第二个参数为url
            xhr.open('GET','http://127.0.0.1:8000/s');
            // 发送请求
            xhr.send();
            xhr.onreadystatechange=function(){
                if(xhr.readyState===4){
                    if(xhr.status>=200&&xhr.status<300){
                        result.innerHTML=xhr.response;
                    }
                }
            }            
        })
    </script>
</body>
</html>

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

传说中的懿痕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值