简洁Ajax函数处理(示例代码)

  以下是封装的一个处理函数,使用是也十分方便:

  文件的名字命名为: jQuery.ajaxRequest.js .

  使用方法:

  

复制代码 代码如下:

  $('._ajax').click(function(){

  _ajax.request(this);

  return false;

  });

  var _ajax = {

  request: function(o){

  var tform = $(o).parents('form');

  _ar2(tform,'','_ajax._fb_request');

  },

  _fb._request: function(d){

  d = eval('(' +unescape(d)+ ')');                                                                                                //提交状态提示。

  if(d.notification){

  if(d.type == 'ok'){

  alert('提交成功');

  }else if(d.type == 'error'){

  alert('提交失败');

  }else{

  alert('错误');

  }

  }

  }

  }

  该ajax文件代码:

  

复制代码 代码如下:

  // 改进版 _ar

  function _ar2(s, target, feedback, param, methods){

  var url, method;

  var params = {};

  if( (s instanceof jQuery) && s.attr("tagName")=='VFORM') {

  url  = s.attr('action');

  method = s.attr('method');

  params = param || $('input, textarea, select',s).serialize();

  }else if( (s instanceof jQuery) && s.attr("tagName")=='FORM') {

  url  = s.attr('action');

  method = s.attr('method');

  params = param || s.serialize();

  }else if(typeof(s)=='string'){

  url  = s; // http://...

  }

  url = url || '';

  method = method || methods || 'GET';

  params = param ? param : params;

  jQuery.ajax({

  type: method,url:url,data:params,

  beforeSend: function(){

  //jQuery.jGrowl('数据读取中 请稍候..', {  header: '提示', theme: 'blue'});

  },

  success: function(data) {

  //data = jQuery.trim(data).replace(/[\n\t\r]/gi,'');

  if(feedback){

  eval(feedback+'(\''+escape(data)+'\')');

  return;

  }else{

  if(data){

  if(target){

  jQuery(target).html(data);

  jQuery.jGrowl('页面请求完毕.', {  header: '提示', theme: 'green', 'life': 100});

  return;

  }

  }else{

  lg('no feedback');

  jQuery.jGrowl('服务器无返回信息.', {  header: '提示', theme: 'blue'});

  return;

  }

  }

  jQuery.jGrowl(data, {  header: '提示', theme: 'blue'});

  },

  error: function (e){

  var s = e.status;

  switch(s) {

  case 404:

  jQuery.jGrowl('请求的页面无法找到. 请联系系统管理员.', {  header: '提示', theme: 'blue'});

  break;

  case 500:

  jQuery.jGrowl('服务器错误[500]. 请联系系统管理员.', {  header: '提示', theme: 'blue'});

  break;

  default:

  //log('unknow error');

  lg(s);

  jQuery.jGrowl('未知错误. 请联系系统管理员.', {  header: '提示', theme: 'blue'});

  }

  }

  });

  }

  注意:jQuery.jGrowl是jquery的一个弹窗提示的插件,提示完成自动消失,用起来很方便,google一下就知道了。另外至于使用方法,返回数据是我们公司约定好的一个格式,方便使用而已。