`
空指针异常
  • 浏览: 21555 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Ajax调用记录

阅读更多
本文从网络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-Debugger:Chrome扩展程序,它将所有AJAX(XMLHttpRequest)活动记录到开发工具控制台,允许检查AJAX调用,并在新标签页中打开调用

    单击URL在新选项卡中打开AJAX调用,包括所有输入,从而使调试更加容易。 您甚至可以向下钻取以查看所有低级请求详细信息,包括HTTP标头信息。 记录的数据包括: 文件名为 回应状态 响应时间 回应大小 具有所有...

    js定时器+ajax,间隔10s调用一次

    主要用于消息提醒,利用js页面定时器,定时提交ajax请求,查询最新的消息记录。改了很多次,终于成功了。

    jqueryajaxlogger:jQuery Ajax Logger是一个书签,用于记录jQuery ajax调用和触发它的源代码

    jQuery Ajax Logger是一个书签,用于记录jQuery ajax调用和触发它的源代码。 通过它可以轻松地追溯哪些文件和功能正在触发ajax调用。 用法 创建具有以下内容的书签: [removed](function(){document.body....

    jQuery ajax调用WCF服务实例

    恩,在由瘦客户端转换成胖浏览器端的“潮流”下,必然要使用JavaScript调用后台的各种服务。 屌丝所维护的产品通信都是使用的WCF服务,因此必然要学习这样的内容。借用jQuery强大的库,使用JavaScript访问WCF服务...

    静态页面调用最新浏览记录插件 for Phpcms 2008.rar

    看见过浏览记录的解决方案。但如果要实现的话需要修改源文件,并且需要动态页面才可以调用。且没有详细的操作步骤。 相信会有不少人需要,在参考了PC黄页的产品的浏览记录后 ...2、静态页面AJAX调用。

    Ajax 异步回调,ajax异步提交表单,ajax异步显示

    Ajax存在问题就是在异步情况下无法控制什么时候完成记录显示,本人根据回调方法封装了个类,能够将回调方法用参数方式指定,使ajax调用结束后调用回调方法,吧内容传回。ajaxSubmitToDivCallback(显示内容div,提交...

    Ajax-tracy.zip

    友好的设计、日志记录、探查器、调试ajax调用或cli支持等高级功能。你会喜欢的。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小...

    AJAX Debugger-crx插件

    将所有AJAX活动记录到“开发工具控制台”,从而允许检查AJAX调用,并使用所有输入在新选项卡中打开调用。 AJAX调试器会将所有AJAX(XMLHttpRequest)活动记录到Chrome的开发者工具控制台。 这使开发人员可以轻松查看...

    AJAX调试器「AJAX Debugger」-crx插件

    将所有AJAX活动记录到Dev工具控制台,允许对AJAX调用进行检查,并在新选项卡中打开所有输入的调用。 AJAX调试器会将所有AJAX(XMLHttpRequest)活动记录到Chrome的开发者工具控制台。 这使开发人员可以轻松查看顶级...

    jQuery插件jQuery-JSONP开发ajax调用使用注意事项

    jQuery-JSONP是一个支持 JSONP 调用的 jQuery 插件,使用它是因为它支持出错时的 ajax 回调,而 jQuery 的 $.ajax 不支持,我们已经在实际项目中使用,在开始使用时遇到了2个问题,在这里记录并分享一下。

    JSON方式调用WBESERVICE.zip

    附件前端使用AJAX以JSON方式传输传输数据,后端将JSON解析为实体类,解析结果会以TXT形式存入本地。最终实现以JSON格式用AJAX调用WEBSEVICE并留下记录,实测可正常运行。

    ThinkPHP 整合Bootstrap Ajax分页样式

    ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $where['name']= array('like','%'.(string)$name.'%');...// 实例化分页类 传入总记录数、ajax更新的局部

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...

    AJAX 源码范例

    使用Ajax来动态获取聊天记录,可以避免屏幕不断刷新而出现的闪动现象,另外,使用Ajax也可以减少服务器端的负荷,对这种客户端与服务器端通信量极大的程序是非常有意义的。对用户来讲,极大的提高了用户体验 ...

    javascript请求servlet实现ajax示例(分享)

    ajax请求是一种无刷新式的用户体验,可以发送GET和POST两种异步请求,现记录如下: GET请求: function sendRequestByGet(){ //定义异步请求对象 var xmlReq; //检测浏览器是否直接支持ajax if(window....

    AJAX数组表格分页JS类 AjaxTablePage 1.01

    | AJAX应用:适时获取新的字符串后设置上述接口再调用initialize()即可 | | 参考网上代码所写,变量名不是很规范。请见谅| | | |---------------------------------------------------------------...

    ajax调用java实例源码-robertalab:重要提示:此存储库仅出于历史原因而处于状态。积极支持的存储库是“openroberta-l

    ajax调用java实例源码开放罗伯塔实验室 构建状态: 掌握 开发 我们使用 BrowserStack 进行跨浏览器测试 介绍 以下步骤说明了如何开始使用这些源。 如果您只想在本地运行服务器,请查看 . 如果您想贡献,请与我们联系...

    C# MVC api-接收List实体类参数

    C# MVC ajax调用api接口,api接口以List的形式接收参数,以实现多条记录的操作,以VS2013打开,ASP.NET MVC 4,下载解压rar-demo直接打开运行即可。压缩文件里也包含了“IHttpActionResult不识别解决办法”的文档以...

    使用ajax跨域调用springboot框架的api传输文件

    在新项目中使用的是springboot编写的api,涉及到ajax跨域请求和传输文件的问题,在这里记录一下 首先是前台页面的代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>...

    Ajax-hook:拦截由XMLHttpRequest发出的浏览器的AJAX请求

    约会后会有一个称为“ ah”(ajax hook)的一部分对象,通过它可以调用ajax-hook的API,如ah.proxy(hooks) NPM♡ npm install ajax-hook拦截XMLHttpRequest通过proxy(hooks)拦截: import { proxy , unProxy } from ...

Global site tag (gtag.js) - Google Analytics