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 相关文章推荐
apycom出品的jQuery精美菜单破解方法
Feb 18 Javascript
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
JavaScript实现重置表单(reset)的方法
Apr 02 Javascript
原生js编写autoComplete插件
Apr 13 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 Javascript
JS根据生日月份和日期计算星座的简单实现方法
Nov 24 Javascript
15个非常实用的JavaScript代码片段
Dec 18 Javascript
基于node.js制作简单爬虫教程
Jun 29 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
May 14 Javascript
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 split汉字
2009/06/05 PHP
php 无限分类的树类代码
2009/12/03 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
Python解决走迷宫问题算法示例
2018/07/27 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Python flask框架端口失效解决方案
2020/06/04 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
基于opencv实现简单画板功能
2020/08/02 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
劳资员岗位职责
2013/11/11 职场文书
学院书画协会部门岗位职责
2013/12/01 职场文书
办理护照介绍信
2014/01/16 职场文书
公司任命书模板
2014/06/06 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
Python面向对象之成员相关知识总结
2021/06/24 Python
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle