jQuery ajax 路由和过滤器使用说明


Posted in Javascript onAugust 02, 2011

遗憾的是,我用到的一个遗留系统并没有做到这样。于是在客户端应用jQuery的ajaxPrefilter改造了一下调用方法。

<html> 
<head> 
<title>ajaxPrefilter demo</title> 
</head> 
<body> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script type="text/javascript"> 
var zoneAjaxUrl = '/ajax.php'; 
var zoneAjaxRoute = /\/ajax\/(\w+)\/(\w+)\/(\w+)(\?.*)?/; 
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) { 
// console.log(options.url,'\n',originalOptions.url); 
var m = options.url.match(zoneAjaxRoute) 
if(m){ 
var routed = { 
dir : m[1], page : m[2], action : m[3], 
args : JSON.stringify(originalOptions.data) 
} 
options.url = zoneAjaxUrl+ (m[4]||''); 
options.data = $.param(routed); 
} 
}); 
var url = '/ajax/dir/page/action'; 
// var url = '/ajax/dir/page/action?a=1&b=2'; 
var url_jsonp = '/ajax/dir/page/action?callback=?'; 
// var url_jsonp = '/ajax/dir/page/action?a1=2&b1=3&diy_callback=?'; 
var data = { 
username: "abc@example.com", 
users : ['a','b'] 
} 
$.post(url,data); 
$.get(url,data); 
$.getJSON(url_jsonp,data); 
</script> 
</body> 
</html>

使用比对
// 改造之后 
$.post('/ajax/dir/page/action',{page:1}) 
// 改造之前 
$.post('/ajax.php',{ 
dir : 'dir', 
page : 'page', 
action : 'action', 
args : JSON.stringify({ page:1 }) 
});
Javascript 相关文章推荐
javascript上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
jquery 表格排序、实时搜索表格内容(附图)
May 19 Javascript
JavaScript实现仿网易通行证表单验证
May 25 Javascript
Vue如何实现组件的源码解析
Jun 08 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
Vue中的异步组件函数实现代码
Jul 20 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
Oct 24 Javascript
解决layer弹出层msg的文字不显示的问题
Sep 11 Javascript
JavaScript闭包相关知识解析
Oct 19 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
js禁止小键盘输入数字功能代码
Aug 01 #Javascript
js内置对象 学习笔记
Aug 01 #Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
Jul 31 #Javascript
js动态加载以及确定加载完成的代码
Jul 31 #Javascript
JS按位非(~)运算符与~~运算符的理解分析
Jul 31 #Javascript
JS高级拖动技术 setCapture,releaseCapture
Jul 31 #Javascript
js中判断文本框是否为空的两种方法
Jul 31 #Javascript
You might like
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
Mac下安装vue
2018/04/11 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
Python and、or以及and-or语法总结
2015/04/14 Python
Python3.6正式版新特性预览
2016/12/15 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
python模拟表单提交登录图书馆
2018/04/27 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python print不能立即打印的解决方式
2020/02/19 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
购房协议书
2014/04/11 职场文书
殡葬服务心得体会
2014/09/11 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS