原生JavaScript的Ajax请求操作(跨域及其他部分日后补充)

1,调用纯文本文档


先创建一个点txt文件(名字随意),里面随便写点字就行。


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Ajax_txt</title>
	</head>
	<body>
		<button id="btn">Ajax</button>
		<script>
			document.getElementById("btn").addEventListener("click",name,false);
			
			function name(){
				var xhr = new XMLHttpRequest();
//				console.log(xhr)
				xhr.open("GET","name.txt",true);
				console.log("readyState:"+xhr.readyState);
				xhr.send();
//				xhr.onload = function(){
//					console.log(this.responseText)
//				}
				xhr.onprogress = function(){
					console.log("readyState:"+xhr.readyState);
				}
				xhr.onreadystatechange = function(){
					console.log("readyState:"+xhr.readyState);
					console.log(this.responseText);
				}
			}
			//readyState状态码
			//0:请求未初始化
			//1:服务器已建立连接
			//2:请求已接收
			//3:请求处理中
			//4:请求已完成,且响应已就绪
			
			//http状态码(status)详情百度
		</script>
	</body>
</html>

2.调用单个,多个json文件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Ajax_json</title>
	</head>
	<body>
		<button id="btn1">请求单个用户</button>
		<button id="btn2">请求多个用户</button>
		<br/><br/>
		<h1>单个用户</h1>
		<div id="user"></div>
		<h1>多个用户</h1>
		<div id="users"></div>
		
		<script>
			document.getElementById("btn1").addEventListener("click",loadUser,false);
			document.getElementById("btn2").addEventListener("click",loadUsers,false);
			
			function loadUser(){
				var xhr = new XMLHttpRequest();
				xhr.open("GET","user.json",true);
				xhr.send();
				xhr.onload = function(){
					if(this.status == 200){
						var user = JSON.parse(this.responseText)//string-->object
						//json.stringify()  object-->string
						var output = "";
						console.log(user);
						output += "id: "+user.id+"\nname: "+user.name+"\nemail: "+user.email;
						document.getElementById("user").innerText = output;
					}
				}
			}
			
			function loadUsers(){
				var xhr = new XMLHttpRequest();
				xhr.open("GET","users.json",true);
				xhr.send();
				xhr.onload = function(){
					if(this.status == 200){
						var users = JSON.parse(this.responseText)//string-->object
						//JSON.stringify()  object-->string
						var output = "";
						console.log(users);
						for (var i in users) {
							for (var j in users[i]) {
								output += "id: "+users[i][j].id+"\nname: "+users[i][j].name+"\nemail: "+users[i][j].email+"\n\n"
							}
						}
						document.getElementById("users").innerText = output;
					}
				}
			}
		</script>
	</body>
</html>

3.调用真实的GITHUB接口

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>请求Github接口</title>
		<style type="text/css">
			*{
				padding: 0;
				margin: 0;
			}
			#users{
				width: 1050px;
				margin: 0 auto;
			}
			.imgBox{
				width: 200px;
				height: 280px;
				display: inline-block;
				border: 1px solid gray;
				box-sizing: border-box;
				padding: 5px;
				margin: 5px;
			}
			.imgBox img{
				max-height: 100%;
				max-width: 100%;
			}
		</style>
	</head>
	<body>
		<button id="btn">请求Github接口</button>
		<br /><br />
		<h1>所有Github的用户信息</h1>
		<div id="users"></div>
		<script>
			document.getElementById("btn").addEventListener("click",loadUsers,false)
			function loadUsers(){
				var xhr = new XMLHttpRequest();
				xhr.open("GET","https://api.github.com/users",true);
				xhr.send();
				xhr.onload = function(){
					if(this.status == 200){
						var users = JSON.parse(this.responseText)//string-->object
						//json.stringify()  object-->string
						var output = "";
						console.log(users);
						for (var i in users) {
							output += '<div class="imgBox"><img src="'+users[i].avatar_url+'"/><br/><span>id: '+users[i].id+'<br/>login: '+users[i].login+'</span></div>'
						}
						document.getElementById("users").innerHTML = output;
					}
				}
			}
		</script>
	</body>
</html>

4.调用php文件(需要搭建php环境,推荐XAMPP)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>php_json</title>
	</head>
	<body>
		<button id="btn">请求php接口</button>
		<br /><br />
		<h1>GET常规表单提交</h1>
		<form action="api.php" method="get">
			<input type="text" name="name" />
			<input type="submit" value="提交" />
		</form>
		<h1>GET---ajax表单提交</h1>
		<form id="formName">
			<input type="text" name="name" />
			<input type="submit" value="提交" />
		</form>
		
		<h1>POST常规表单提交</h1>
		<form action="api.php" method="post">
			<input type="text" name="name" />
			<input type="submit" value="提交" />
		</form>
		<h1>POST---ajax表单提交</h1>
		<form id="formName2">
			<input type="text" name="name" />
			<input type="submit" value="提交" />
		</form>
		<div id="user"></div>
		
		<script>
			document.getElementById("btn").addEventListener("click",loadUser,false);
			document.getElementById("formName").addEventListener("submit",loadUser2,false);
			document.getElementById("formName2").addEventListener("submit",loadUser3,false);
			
			function loadUser(){
				var xhr = new XMLHttpRequest();
				xhr.open("GET","api.php",true);
				xhr.send();
				xhr.onload = function(){
					if(this.status == 200){
						var user = this.responseText//string-->object
						//json.stringify()  object-->string
						console.log(user);
						document.getElementById("user").innerText = user;
					}
				}
			}
			
			//get
			function loadUser2(event){
				event.preventDefault();
				var name = document.getElementsByName("name")[1].value;
				var xhr = new XMLHttpRequest();
				xhr.open("GET","api.php?name="+name,true);
				xhr.send();
				xhr.onload = function(){
					if(this.status == 200){
						var user = this.responseText//string-->object
						//json.stringify()  object-->string
						console.log(user);
						document.getElementById("user").innerText = user;
					}
				}
			}
			
			//post
			function loadUser3(event){
				event.preventDefault();
				var name = document.getElementsByName("name")[3].value;
				var postname = "name="+name;
				var xhr = new XMLHttpRequest();
				xhr.open("POST","api.php",true);
				xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded')
				xhr.send(postname);
				xhr.onload = function(){
					if(this.status == 200){
						var user = this.responseText//string-->object
						//json.stringify()  object-->string
						console.log(user);
						document.getElementById("user").innerText = user;
					}
				}
			}
		</script>
	</body>
</html>


猜你喜欢

转载自blog.csdn.net/qq_40002902/article/details/80083914