css自学框架之ajax获取提交数据

本小结主要自学了ajax,页面部分刷新,实现动态提交数据到服务器;动态从服务区获取数据。get,post两种传递数据方法,Json、html、text、xml等多种数据格式。

展示效果如下图:

一、Javascript代码,具体代码如下:

javascript 复制代码
ajax:function(prop){
			if(!prop.url) prop.url = document.location.
			href;
			if(!prop.method) prop.method = "GET";
			if(prop.method === "POST"){
				var data = new FormData();
				for(var d in prop.data){
				    data.append(d, prop.data[d]);
				}
			}
			else if(prop.method === "GET"){
			    var url = prop.url + "?";			
			    for(var d in prop.data){
			        url += d + "=" + prop.data[d] + "&";
			    }			
			    prop.url = url.substr(0, url.length - 1);
			}
			var request = new XMLHttpRequest();
			request.open(prop.method, prop.url);
			if(prop.crossDomain){ request.setRequestHeader("X-Requested-With", "XMLHttpRequest"); }
			//X-Requested-With请求头用于在服务器端判断request来自Ajax请求还是传统请求。两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数			
			if(prop.header){
			    for(var i in prop.header){
			        request.setRequestHeader(prop.header[i][0], prop.header[i][1]);
			    }
			}			
			request.send(data);
			request.onreadystatechange = function () {				
			    if(request.readyState === 4){
					// 0:请求未初始化,即尚未调用open()方法。
					// 1:服务器连接已建立,但是尚未发送请求。open()方法已经调用了。
					// 2:请求已接收,但是尚未开始处理。send()方法已经调用了,并且头部和状态已经可获得。
					// 3:请求处理中,通常响应体部分已经被接收。
					// 4:请求已完成,且响应已就绪。此时可以获取响应数据。
			        if(request.status === 200 || request.status === 304){
						//200------提交成功;304状态码是对客户端有缓存情况下服务端的一种响应
			            if(prop.type){
			                switch(prop.type){
			                    case "text": prop.success(request.responseText); break;
			                    case "json": prop.success(JSON.parse(request.response)); break;
			                }
			            }
			            else{
			                prop.success ? prop.success(request) : console.log(prop.method + " 请求发送成功");
			            }
			        }
			        else{
			            prop.failed ? prop.failed(request) : console.log(prop.method + " 请求发送失败");
			        }
			
			        request = null;
			    }
			};			
			return request;
		}

二、Html调用ajax的方法,具体代码如下:

html 复制代码
<div class="mythBox mid" id="ajax">
		<br/>
		<button class="btn red" id="btnget">获取数据</button>
		<button class="btn blue" id="btnpost">提交数据</button>
		<div id="resultbox"></div>
	</div>	
		<script type="text/javascript">		
			myth('#btnget').click(function(){
				myth('').ajax({
					method: "GET",
					    data: {
					        id: "newid"
					    },
					    url: "http://www.yuanziyu.com",
					    success: function (req){
							myth('#resultbox').html("================"+req.responseText);				       
					    },
					    failed: function (req){
					        console.log("失败了");
					        console.log(req); // 返回的 XHR 对象
					    }
				});	
			});
			
			myth('#btnpost').click(function(){
				myth('').ajax({
					method: "POST",
					    data: {
					        id: "newid"
					    },
					    url: "http://www.yuanziyu.com",
					    success: function (req){
							//myth('#resultbox').html("================"+req.responseText);				       
					    },
					    failed: function (req){
					        console.log("失败了");
					        console.log(req); // 返回的 XHR 对象
					    }
				});	
			});
					
		</script>

这部分依然是两部分代码,一部分是Html代码,页面展示连个按钮,一个是Get获取数据,一个市Post提交数据;另一部分是Javascript,ajax调用获取服务器数据。

三、代码下载

源代码下载:请单击

相关推荐
lumi.1 小时前
Swiper属性全解析:快速掌握滑块视图核心配置!(2.3补充细节,详细文档在uniapp官网)
前端·javascript·css·小程序·uni-app
Man2 小时前
uniapp中使用unocss适配多端
前端·css
掘金安东尼4 小时前
用 CSS random() 来掷骰子
前端·css·面试
山有木兮木有枝_13 小时前
TailWind CSS
前端·css·postcss
一点一木16 小时前
使用现代 <img> 元素实现完美图片效果(2025 深度实战版)
前端·css·html
海天鹰19 小时前
CSS变量
css
复苏季风1 天前
从布局难民到 flex 大神:新人必学的 Flex 布局全攻略
前端·css
然我1 天前
一篇吃透移动端适配!从原理到实战,面试题也帮你整理好了 📱
前端·css·html
晓得迷路了1 天前
栗子前端技术周刊第 95 期 - Next.js 15.5、Rslint、2025 年 CSS 现状报告...
前端·javascript·css
wuzuyu3652 天前
生成一个竖直放置的div,宽度是350px,上面是标题固定高度50px,下面是自适应高度的div,且有滚动条
前端·javascript·css