ajax 跨域封装 JSONP方式 默认还是GET提交请求

/**--jquery ajax请求处理插件类--**/
var WebsiteAjax = {
	
	returnData	:	null,
	
	//获取一个实例
	getInstance		:	function(settings){
		/**
		 * 默认的200回调函数(可重写和继承)
		 */
		var defaultAjaxSuccessMethod = function(data,status) {
			 alert(data.message);
		     return false;
		};

		var defaultAjaxCallbakErrorMethod = function(data,status) {
			 alert(data.message);
		     return false;
		};
		
		/**
		 * 默认的错误回调函数 (可重写和继承) 大部分错误处理都可以直接用它
		 * 406 为自定义错误 状态码 通常会携带个自定义的描述字符串msg
		 * 比方说,异步请求后台判断了某个参数为空,若为空则返回
		 * 那么就可以将状态吗标注为406,然后弄个msg的key,value
		 */
		var defaultAjaxErrorMethod = function(XMLHttpRequest, textStatus, errorThrown) {
			try{
				var e = jQuery.parseJSON(XMLHttpRequest.responseText);
				alert("提示:["+e.message+"]");
			}catch(e){
				alert("提示:[服务器出错]");
			}
			return false;
		};

		/**
		 * 定义默认变量,常量 
		 * ajaxUrl 请求的action路径,pagerUrl是分页控件本身要访问的url,可以与ajaxUrl相同
		 * dataParameter 需要传递的参数,这里是个默认的
		 */
		var defaultAjaxVariable = {
			ajaxUrl : "url", 
			dataParameter : null,
			type : "POST",
			dataType : "text",
			async: false,
			succesMethod : defaultAjaxSuccessMethod, //默认200回调方法名称
			errorCallMethod : defaultAjaxCallbakErrorMethod, //默认非200jsonp回调方法名称
			errorMethod : defaultAjaxErrorMethod //默认非200回调方法名称
		};
		
		/**
		 * 执行异步post ajax请求方法
		 * newsVariable 新的变量或常量
		 * successMethod 回调函数  返回200时  处理业务的方法名称
		 * errorMethod   错误回调函数  处理业务的方法名称
		 */
		var ajaxMethod = function(newsVariable){
			defaultAjaxVariable = jQuery.extend(true,defaultAjaxVariable, newsVariable);
			if(defaultAjaxVariable.dataType == "jsonp" || defaultAjaxVariable.dataType == "JSONP"){
				if(defaultAjaxVariable.dataParameter != null && defaultAjaxVariable.dataParameter != ""){
					if(typeof(defaultAjaxVariable.dataParameter) == "object"){
						var temp = "t=" + Math.random();
						for(var x in defaultAjaxVariable.dataParameter){
							temp += "&" + x + "=" + defaultAjaxVariable.dataParameter[x];
						}
						defaultAjaxVariable.dataParameter = temp;
					}else {
						defaultAjaxVariable.dataParameter += "&t=" + Math.random();
					}
				}else {
					defaultAjaxVariable.dataParameter = "t=" + Math.random();
				}
			}
			$.ajax({
		         url: defaultAjaxVariable.ajaxUrl,
		         type: defaultAjaxVariable.type,
		         async: defaultAjaxVariable.async,
		         data: defaultAjaxVariable.dataParameter,
		         dataType: defaultAjaxVariable.dataType,
		         success: function (data, textStatus) {
					if(defaultAjaxVariable.dataType == "jsonp" || defaultAjaxVariable.dataType == "JSONP"){
						var res = null;
						if(typeof(data) == "object"){
							res = data;
						}else {
							res = jQuery.parseJSON(data);
						}
						
		        		if(res.status == "success"){
		        			defaultAjaxVariable.succesMethod(res,textStatus);
		        		}else {
		        			defaultAjaxVariable.errorCallMethod(res, textStatus);
		        		}
		        	 }else {
		        		 defaultAjaxVariable.succesMethod(data,textStatus);
		        	 }
		         },
		         error: function(XMLHttpRequest, textStatus, errorThrown) {
		        	 defaultAjaxVariable.errorMethod(XMLHttpRequest, textStatus, errorThrown);
		         }
		     }); 
		};
		
		/** 加载时执行 **/
		ajaxMethod(settings);
	}
	
};

website.ajax.js
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值