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 相关文章推荐
JS两种定义方式的区别、内部原理
Nov 21 Javascript
jquery动态添加元素事件失效问题解决方法
May 23 Javascript
jQuery循环滚动新闻列表示例代码
Jun 17 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
jQuery无刷新上传之uploadify3.1简单使用
Jun 18 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
JS原生轮播图的简单实现(推荐)
Jul 22 Javascript
react实现一个优雅的图片占位模块组件详解
Oct 30 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
vue 解决IOS10低版本白屏的问题
Nov 17 Javascript
js前端对于大量数据的展示方式及处理方法
Dec 02 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禁止页面缓存的代码
2011/10/23 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
python中异常报错处理方法汇总
2016/11/20 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
python中的闭包函数
2018/02/09 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
简单了解python的内存管理机制
2019/07/08 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
通过自学python能找到工作吗
2020/06/21 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
2014年端午节活动方案
2014/03/11 职场文书
党员公开承诺书
2014/03/25 职场文书
抽奖活动主持词
2014/03/31 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle