本文从网络COPY
/** 全局ajax对象 */
var ajax = new Object();
var ajaxCore = null;
/**
* @see 创建ajax核心对象,兼容浏览器有:IE6,7,8,9,谷歌,火狐,欧朋,360极速,360安全,苹果,搜狗,遨游,猎豹,腾讯
* @return XMLHttpRequest
*/
ajax.getCore = function() {
var xmlHttp = null;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
if (xmlHttp.overrideMimeType) {
xmlHttp.overrideMimeType("text/xml");
}
} else {
if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
if (!xmlHttp) {
window.alert("\u8bf7\u4f7f\u7528IE\u6d4f\u89c8\u5668!");
}
return xmlHttp;
};
/**
* @see 处理ajax参数
* @param param 参数
* @return String
*/
ajax.getParam = function(param) {
var randomStr = "ajaxParamRandom=" + Math.random();
if (param == null || param == "") {
return randomStr;
}
var str = "";
if (typeof(param) == "object") {
for (var key in param) {
str += key + "=" + param[key] + "&";
}
str = (str.length > 0 ? str.substring(0, str.length - 1) : str);
} else {
str = param;
}
return str + "&" + randomStr;
};
/**
* @see ajax的回调函数
* @param callback 用户自定义回调函数
* @param url 请求的url
*/
ajax.doCallback = function(callback, url) {
if (ajaxCore.readyState == 4) {
if (ajaxCore.status == 200) {
if (callback == null) {
return;
}
var result = new String(ajaxCore.responseText);
if (null != result && result != "") {
if (result == "null") {
callback(null);
} else {
var backObject = null;
if (result == "true" || result == "false") {
backObject = eval(result);
} else if (!isNaN(result)) {
backObject = parseFloat(result);
} else if ((result.substring(0, 1) == "[" && result.substring(result.length - 1, result.length) == "]") ||
(result.substring(0, 1) == "{" && result.substring(result.length - 1, result.length) == "}")) {
backObject = eval("(" + result + ")");
} else {
backObject = result;
}
callback(backObject);
}
} else {
callback(result);
}
} else if (ajaxCore.status == 0 || ajaxCore.status == 12029) {
showProgress("0", "1");
alertWin("\u627e\u4e0d\u5230\u670d\u52a1\u5668\uff01", null, "");
} else if (ajaxCore.status == 404) {
showProgress("0", "1");
alertWin("\u627e\u4e0d\u5230\u8d44\u6e90: " + url, null, "");
}
}
};
/**
* @see ajax的post请求
* @param url 请求的url
* @param param 参数列表,可以是字符串或js对象或null
* @param callback 用户自定义回调函数
*/
ajax.post = function(url, param, callback) {
ajaxCore = ajax.getCore();
if (ajaxCore != null) {
ajaxCore.onreadystatechange = function() {
ajax.doCallback(callback, url);
};
ajaxCore.open("POST", url, true);
ajaxCore.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajaxCore.send(ajax.getParam(param));
}
};
/**
* @see ajax的get请求
* @param url 请求的url
* @param callback 用户自定义回调函数
*/
ajax.get = function(url, callback) {
ajaxCore = ajax.getCore();
if (ajaxCore != null) {
if (url.indexOf("?") != -1) {
url += "&ajaxParamRandom=" + Math.random();
} else {
url += "?ajaxParamRandom=" + Math.random();
}alert(url);
ajaxCore.onreadystatechange = function() {
ajax.doCallback(callback, url);
};
ajaxCore.open("GET", url, true);
ajaxCore.send(null);
}
};
调用:
ajax.post("/oc/iva.htm", {id:1, version:'1.2.6'}, function(json) {
alert(json.success);
});
分享到:
相关推荐
在这个主题中,我们将深入探讨如何使用Ajax进行记录的插入、删除和修改操作。 **1. Ajax的基本原理** Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器进行通信。通过创建一个XMLHttpRequest实例,...
### 使用AJAX的GET和POST方法调用Servlet的详尽解析 #### 一、引言 在现代Web开发中,异步JavaScript与XML(AJAX)技术被广泛应用于实现无刷新更新网页的部分内容,极大地提升了用户体验。AJAX通过在后台与服务器...
单击URL在新选项卡中打开AJAX调用,包括所有输入,从而使调试更加容易。 您甚至可以向下钻取以查看所有低级请求详细信息,包括HTTP标头信息。 记录的数据包括: 文件名为 回应状态 响应时间 回应大小 具有所有...
使用`[WebMethod]`装饰器标记静态方法,并确保这些方法可以被Ajax调用: ```csharp [WebMethod] public static void Add(string name, string otherFields) { // 实现添加记录的逻辑 } [WebMethod] public static...
jQuery Ajax Logger是一个书签,用于记录jQuery ajax调用和触发它的源代码。 通过它可以轻松地追溯哪些文件和功能正在触发ajax调用。 用法 创建具有以下内容的书签: [removed](function(){document.body....
主要用于消息提醒,利用js页面定时器,定时提交ajax请求,查询最新的消息记录。改了很多次,终于成功了。
要实现在AJAX更新后保存浏览器历史记录,开发者需要在每次AJAX请求成功并更新页面内容后调用`pushState`或`replaceState`。例如,当用户点击一个按钮加载新的内容时,可以执行以下步骤: 1. 发送AJAX请求获取新的...
恩,在由瘦客户端转换成胖浏览器端的“潮流”下,必然要使用JavaScript调用后台的各种服务。 屌丝所维护的产品通信都是使用的WCF服务,因此必然要学习这样的内容。借用jQuery强大的库,使用JavaScript访问WCF服务...
这个“Demo3 ajax请求”可能包含了一个简单的Vue组件,它展示了如何在页面加载时通过Ajax调用Web服务接口获取JSON数据,并将这些数据动态填充到一个表格中。这是一个典型的前端与后端交互场景,对于任何使用Vue.js的...
通过实现javax.servlet.Filter接口,我们可以创建自定义过滤器来执行诸如身份验证、数据转换、日志记录等任务。在描述中提到的"filter登入过滤",就是利用过滤器在用户访问受保护的页面之前检查其登录状态,确保只有...
- 调用`jquery.pagination.js`的初始化方法,设置分页控件的样式、每页显示的按钮数量等属性,并绑定分页事件,确保点击分页按钮时能触发新的Ajax请求。 8. **实现分页功能**: - 当用户点击分页按钮时,jQuery...
看见过浏览记录的解决方案。但如果要实现的话需要修改源文件,并且需要动态页面才可以调用。且没有详细的操作步骤。 相信会有不少人需要,在参考了PC黄页的产品的浏览记录后 ...2、静态页面AJAX调用。
本文主要探讨了在Ajax调用中遇到的IE浏览器缓存问题及其解决方案。 Ajax请求通常用于向服务器获取数据,更新网页部分区域,而不刷新整个页面。然而,在Internet Explorer(IE)浏览器中,如果XMLHttpRequest请求的...
通过这个回调函数,开发者可以执行错误处理的逻辑,比如显示错误信息给用户或记录错误日志。 知识点九:AJAX请求的异步性 AJAX请求的异步性质意味着在请求服务器时,页面不会发生重新加载,用户可以继续与页面交互...
ScriptManager是所有Ajax功能的基础,它负责管理页面上的JavaScript库和Ajax调用。在页面头部添加ScriptManager控件,以启用Ajax支持。 然后,我们将GridView放入UpdatePanel内,并为其绑定数据源。在代码-behind...
9. **错误处理和调试**:在开发过程中,理解和处理可能出现的网络错误、协议错误等是必不可少的,同时日志记录和调试工具的使用也很重要。 10. **性能优化**:最后,根据应用场景调整ActiveMQ的配置,比如消息缓存...
- 返回JSON格式的数据,包括当前页的记录和可能的其他信息,如总页数。 4. **分页逻辑**: - 当用户点击分页链接或按钮时,更新AJAX请求中的页码,重新发送请求并更新前端显示。 - 可以使用计算属性来确定是否...
Salesforce.com提供的AJAX工具包,即“AJAX Toolkit”,就是一个关键组件,它为开发者提供了在前端使用AJAX调用后端APEX代码的能力,从而实现更加灵活和高效的开发流程。 #### 销售云的AJAX工具包:深入了解 版本...
2. **Ajax调用**:JavaScript监听到用户的操作,触发Ajax请求,向服务器发送请求,请求参数通常包括当前页码和每页显示的记录数。 3. **服务器处理**:服务器接收到请求后,根据参数计算出对应的数据范围,从数据库...
为了展示投票结果,前端可能有一个定时器,每隔一段时间就通过Ajax调用`poll_result.txt`,获取最新的投票数据,然后更新页面上的投票结果展示。这样,用户可以在不刷新页面的情况下看到实时的投票结果。 总的来说...