Ajax

本文详细介绍了Ajax的优势和不足,如无需刷新页面、部分页面更新以及存在的跨域和SEO问题。接着,深入讲解了Express的基本操作,包括安装、创建和测试。此外,还讨论了GET和POST请求、发送JSON数据、IE的缓存解决方案、请求超时与网络异常的处理,以及取消请求的方法。同时,文章涵盖了jQuery、axios和fetch发送AJAX请求的实例,并阐述了同源策略、JSONP和CORS的原理与应用。
摘要由CSDN通过智能技术生成

AJAX

优点

  1. 无需刷新网页与服务器通信
  2. 允许用户事件更新部分页面内容

缺点

  1. 没有浏览记录,不能回退
  2. 存在跨域问题(同源)
  3. SEO不友好(搜索引擎优化)

express基本使用

安装

在当前文件夹下 open in terminal

node init --yes
node i express

创建

//1、引入express
const express = require('express')

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

//3、创建路由规则
//request 是对请求报文的封装
//response是对响应报文的封装
app.get('/', (req, res) => {
   
//设置响应
	res.send("hello express")
});

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

测试

GET请求

server.js

//1、引入express
const express = require("express");

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

//3、创建路由规则
//request 是对请求报文的封装
//response是对响应报文的封装
app.get("/server", (req, res) => {
   
	//设置响应 设置允许跨域
	res.setHeader("Access-Control-Allow-Origin", "*");
	//设置响应体
	res.send("Hello AJAX");
});

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

html页面

		<script>
			const btn = document.querySelector("button");
			const show = document.querySelector(".show");
			btn.addEventListener("click", function () {
   
				//1、创建对象
				const xhr = new XMLHttpRequest();
				// 2、初始化 设置请求方法和url
				xhr.open("GET", "http://localhost:8000/server");
				// 3、发送
				xhr.send();
				// 4、事件绑定 处理服务端返回的结果
				// readystate 是xhr对象的属性 表示状态 0 1 2 3 4
				xhr.onreadystatechange = function () {
   
					//判断(服务器返回的所有结果)
					if (xhr.readyState === 4) {
   
						// 判断响应状态码 200 404 401 500
						// 2xx 成功
						if (xhr.status >= 200 && xhr.status < 300) {
   
							//处理结果 行 头 空 体
							//1响应行
							console.log(xhr.status);//状态码
							console.log(xhr.responseText);//响应字符串
							console.log(xhr.getAllResponseHeaders());//所有响应头
							console.log(xhr.response);//响应体
							show.insertAdjacentHTML("afterbegin", xhr.response);
						} else {
   

						}
					}
				};
			});
		</script>

POST请求

server.js

app.post("/server", (req, res) => {
   
	res.setHeader("Access-Control-Allow-Origin", "*");
	//响应头
	res.setHeader("Access-Control-Allow-Headers", "*");
	res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值