微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AJAX使用入门一

文章目录

AJAX运行环境

  • Ajax 技术需要运行在网站环境中才能生效,以下使用Node创建的服务器作为网站服务器。
const express=require('express')
const path=require('path')

const app=express();
app.use(express.static(path.join(__dirname,'public')));

app.get('/first',(req,res)=>{
    res.send('hello ajax')
})

app.listen(3000);
console.log('服务器启动成功');

AJAX实现步骤

一、创建ajax对象
var xhr = new XMLHttpRequest();
二、告诉ajax请求地址和请求方式
xhr.open('get', 'http://localhost:3000/first');
三、发送请求
xhr.send();
四、获取服务器端给予客户端的响应数据
xhr.onload = function (){
			console.log(xhr.responseText)
}

实例一

  • 客户端
<!DOCTYPE html>
<html lang="en">
<head>
	<Meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
		// 1.创建ajax对象
		var xhr = new XMLHttpRequest();
		// 2.告诉Ajax对象要向哪发送请求,以什么方式发送请求
		// 1)请求方式 2)请求地址
		xhr.open('get', 'http://localhost:3000/first');
		// 3.发送请求
		xhr.send();
		// 4.获取服务器端响应到客户端的数据
		xhr.onload = function (){
			console.log(xhr.responseText)
		}
	</script>
</body>
</html>
  • 服务器
app.get('/first',(req,res)=>{
    res.send('hello ajax')
})

在这里插入图片描述

实例二 处理服务器端返回的JSON数据

  • 在 http 请求与响应的过程中,无论是请求参数还是响应内容,如果是对象类型,最终都会被转换为对象字符串进行传输。
  • 将JSON字符串转换为JSON对象
<!DOCTYPE html>
<html lang="en">
<head>
	<Meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
		// 1.创建ajax对象
		var xhr = new XMLHttpRequest();
		// 2.告诉Ajax对象要向哪发送请求,以什么方式发送请求
		// 1)请求方式 2)请求地址
		xhr.open('get', 'http://localhost:3000/responseData');
		// 3.发送请求
		xhr.send();
		// 4.获取服务器端响应到客户端的数据
		xhr.onload = function (){
			//console.log(typeof xhr.responseText)  //string
			// 将JSON字符串转换为JSON对象
			var responseText = JSON.parse(xhr.responseText);
			// 测试:在控制台输出处理结果
			console.log(responseText)
			// 将数据和html字符串进行拼接
			var str = '<h2>'+ responseText.name +'</h2>';
			// 将拼接的结果追加到页面中
			document.body.innerHTML = str;
		}
	</script>
</body>
</html>
app.get('/responseData',(req,res)=>{
    res.send({
        "name":"lucy"
    })
})

结果

在这里插入图片描述

实例三 get请求参数传递

<!DOCTYPE html>
<html lang="en">
<head>
	<Meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<p>
		<input type="text" id="username">
	</p>
	<p>
		<input type="text" id="age">
	</p>
	<p>
		<input type="button" value="提交" id="btn">
	</p>
	<script type="text/javascript">
		// 获取按钮元素
		var btn = document.getElementById('btn');
		// 获取姓名文本框
		var username = document.getElementById('username');
		// 获取年龄文本框
		var age = document.getElementById('age');
		// 为按钮添加点击事件
		btn.onclick = function () {
			// 创建ajax对象
			var xhr = new XMLHttpRequest();
			// 获取用户在文本框中输入的值
			var nameValue = username.value;
			var ageValue = age.value;
			// 拼接请求参数
			var params = 'username='+ nameValue +'&age=' + ageValue;
			// 配置ajax对象
			xhr.open('get', 'http://localhost:3000/get?'+params);
			// 发送请求
			xhr.send();
			// 获取服务器端响应的数据
			xhr.onload = function () {
				console.log(xhr.responseText)
			}
		}
	</script>
</body>
</html>
app.get('/get',(req,res)=>{
    res.send(req.query)
})

在这里插入图片描述

实例四 POST请求参数传递

  •   设置请求参数格式的类型(post请求必须要设置)
    
  • 请求体放到send()里
<!DOCTYPE html>
<html lang="en">
<head>
	<Meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<p>
		<input type="text" id="username">
	</p>
	<p>
		<input type="text" id="age">
	</p>
	<p>
		<input type="button" value="提交" id="btn">
	</p>
	<script type="text/javascript">
		// 获取按钮元素
		var btn = document.getElementById('btn');
		// 获取姓名文本框
		var username = document.getElementById('username');
		// 获取年龄文本框
		var age = document.getElementById('age');
		// 为按钮添加点击事件
		btn.onclick = function () {
			// 创建ajax对象
			var xhr = new XMLHttpRequest();
			// 获取用户在文本框中输入的值
			var nameValue = username.value;
			var ageValue = age.value;
			// 拼接请求参数
			var params = 'username='+ nameValue +'&age=' + ageValue;
			// 配置ajax对象
			xhr.open('post', 'http://localhost:3000/post');
			// 设置请求参数格式的类型(post请求必须要设置)
			xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			// 发送请求
			xhr.send(params);
			// 获取服务器端响应的数据
			xhr.onload = function () {
				console.log(xhr.responseText)
			}
		}
	</script>
</body>
</html>
const bodyParser= require('body-parser')
app.use(bodyParser.urlencoded())
app.post('/post',(req,res)=>{
    res.send(req.body)
})

在这里插入图片描述

实例五 向服务器端传递JSON格式的请求参数

  • JSON.stringify() 将json对象转换为json字符串(send只能传递字符串)
<!DOCTYPE html>
<html lang="en">
<head>
	<Meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
		// 1.创建ajax对象
		var xhr = new XMLHttpRequest();
		// 2.告诉Ajax对象要向哪发送请求,以什么方式发送请求
		// 1)请求方式 2)请求地址
		xhr.open('post', 'http://localhost:3000/json');
		// 通过请求头告诉服务器端客户端向服务器端传递的请求参数的格式是什么
		xhr.setRequestHeader('Content-Type', 'application/json');
		// JSON.stringify() 将json对象转换为json字符串
		// 3.发送请求
		xhr.send(JSON.stringify({name: 'lisi', age:50}));
		// 4.获取服务器端响应到客户端的数据
		xhr.onload = function (){
			console.log(xhr.responseText)
		}
	</script>
</body>
</html>
app.use(bodyParser.json())
app.post('/json',(req,res)=>{
    res.send(req.body)
})

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐