我也来发一个自己做的 ajax 简单封装,望多提意见。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ajax</title>
<script type="text/javascript"><!--
function Ajax() {
var xmlHttpReq = null;
if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
} else {
if (window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP',
'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0',
'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
xmlHttpReq = new ActiveXObject(versions[i]);
if(xmlHttpReq) {
break;
}
} catch(e) {}
}
}
}
var handler = null;
this.invoke = function (mode, url, value, _handler) {
handler = _handler;
if(mode == 'get') {
var querystring = url+'?'+value+'&'+Math.random();
if(window.XMLHttpRequest) {
xmlHttpReq.open('GET', querystring);
xmlHttpReq.onreadystatechange = this.callback;
xmlHttpReq.send(null);
} else {
xmlHttpReq.open('GET', querystring, true);
xmlHttpReq.onreadystatechange = this.callback;
xmlHttpReq.send();
}
}
else if(mode == 'post') {
xmlHttpReq.open('POST', url);
xmlHttpReq.onreadystatechange = this.callback;
xmlHttpReq.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xmlHttpReq.send(value);
}
};
this.callback = function () {
if (xmlHttpReq.readyState == 4) {
if (xmlHttpReq.status == 200) {
handler(xmlHttpReq.responseText);
} else {
alert("请刷新页面!");
}
}
};
}
// 调用示例
new Ajax().invoke(
"get",
"/index.php",
'name=hello',
run
);
function run(response) {
alert(response);
}
// --></script>
</head>
<body>
</body>
</html>
服务端数据返回脚本:index.php
<?php
echo $_GET['name'];
// echo $_POST['name'];
?>
兼容 IE、firefox、chrome 等浏览器。
var querystring = url+'?'+value+'&'+Math.random();,Math.random() 主要是进行 GET 请求时为了防止缓存。
发送请求时,对数据最好进行 urlencode 编码。
转载地址:
http://www.xhttp.cn/2010/06/18
分享到:
相关推荐
**标题解析:** "自己用的简单封装AJAX类" 指的是作者为了个人使用需求,编写了一个简化的AJAX处理类。AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,...
一、同一个对象可以发送多个请求,按顺序执行请求,有简单的超时机制,httpXMLRequest对象复用,无序的可以建立多个对象发送请求来实现; 二、兼容IE,FF,支持同步、异步请求; 三、测试通过:IE6+,FireFox2.0; ...
本文将详细解析一个适用于.NET平台的AJAX代码示例及其简单封装方法。 #### 二、核心概念 1. **XMLHttpRequest对象**:在AJAX中扮演着核心角色,负责发送请求和接收响应。 2. **open()方法**:用于设置请求方式...
【简单封装Ajax】这篇文章主要探讨的是如何在JavaScript中对原生的XMLHttpRequest对象进行简单的封装,以便于在实际开发中更方便地进行异步数据请求。在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种...
封装一个简单的GET请求可以这样写: ```javascript function ajaxGet(url, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === ...
因此,封装一个自定义的Ajax工具,可以优化性能,提高代码的可维护性和可读性。 基于标签"ajax"、"ajax工具"、"jQuery"、"ajax实现",我们可以推断出这个小工具可能是: 1. **Ajax请求的实现**:包括发起HTTP请求...
本小工具就是对Ajax进行的一种简单封装,适用于那些希望进行轻量级交互、不打算使用大型JavaScript框架的场景。 Ajax的核心在于通过JavaScript与服务器进行异步通信,它允许我们向后台发送请求,获取数据,然后在...
AJAX的核心是利用JavaScript创建XMLHttpRequest对象,这是一个浏览器内置的对象,它允许开发者在不刷新页面的情况下向服务器发送请求并接收响应。以下是一些关键知识点: 1. **XMLHttpRequest对象**:这是AJAX的...
这个压缩包"原生js的AJAX封装以及实例展示.zip"包含了对AJAX的简单封装以及一个具体的增删改查(CRUD)操作实例,这将帮助我们深入理解如何在实际项目中应用AJAX。 首先,让我们了解一下AJAX的基本原理。AJAX的核心...
总之,“ajax封装的dll”是一个将Ajax功能模块化的实践,它旨在提供一种方便、高效的方式来处理Web应用程序中的异步请求。通过合理利用和管理这样的DLL,开发者可以更好地组织代码,提高开发效率,但同时也需要注意...
以下是一个简单的Ajax函数封装示例: ```javascript function ajaxRequest(url, method, callback, data) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 ...
1. **创建XMLHttpRequest对象**:这是Ajax的核心,它是浏览器提供的一个内置对象,用于与服务器进行通信。 2. **打开连接**:调用XMLHttpRequest对象的open()方法,指定请求类型(GET或POST),URL和是否异步执行。 ...
以下是一个简单的示例: ```javascript function ajax(url, data, type, successCallback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status...
在小程序中封装Ajax,我们可以创建一个名为`ajax.js`的模块,利用ES6的Promise和函数表达式来实现。下面是一个简单的示例: ```javascript // ajax.js export function request(url, method = 'GET', data = {}) { ...
它接受一个包含各种配置选项的对象作为参数,例如: ```javascript $.ajax({ url: 'http://example.com/data', type: 'GET', // 或者 'POST' dataType: 'json', // 'html', 'xml', 'script', 'jsonp' 等 data: ...
以下是一个简单的Ajax封装示例: ```javascript function ajax(url, type, callback, data) { var xhr = new XMLHttpRequest(); xhr.open(type, url, true); // 如果是POST请求,设置请求头 if (type === '...
一个简单的Servlet示例: ```java import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class MyServlet extends HttpServlet { protected void ...
文件名"制作一个简单的社区聊天室(AJAX)"可能包含以下内容: - HTML/CSS文件:构成用户界面,包括输入框、发送按钮和聊天消息列表。 - JavaScript文件:包含AJAX请求和DOM操作的代码。 - ASP.NET后台代码文件(如....
总结来说,“简单ajax登录例子”是一个学习Ajax和Servlet结合的好起点。通过这个实例,你可以了解到如何使用Ajax实现无刷新的用户登录,以及如何在Servlet端处理这些请求。同时,这个过程也涉及到了前端与后端交互、...
1. **创建XMLHttpRequest对象**:在所有现代浏览器中,都可以通过`new XMLHttpRequest()`来创建一个新的XMLHttpRequest实例。 2. **初始化连接**:使用`open()`方法设置请求的类型(GET、POST等)、URL以及是否异步...