Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
来源: 阅读:1235 次 日期:2016-06-25 11:16:07
温馨提示: 小编为您整理了“Node.js服务器环境下使用Mock.js拦截AJAX请求的教程”,方便广大网友查阅!

Mock.js这个JavaScript库最常见的用法便是被用来拦截AJAX请求,well,这里我们就来看一下Node.js服务器环境下使用Mock.js拦截AJAX请求的教程:

0、Node环境下安装和使用Mock

# 安装

npm install mockjs

// 使用 Mock

var Mock = require('mockjs')

var data = Mock.mock({

  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素

  'list|1-10': [{

    // 属性 id 是一个自增数,起始值为 1,每次增 1

    'id|+1': 1

  }]

})

// 输出结果

console.log(JSON.stringify(data, null, 4))

1、拦截 ajax 请求调用

方法如下

Mock.mock( rurl?, rtype?, template|function( options ) )

方法说明:

(1)rurl: 可选参数。

表示需要拦截的 URL,可以是 URL 字符串或 URL 正则。例如 /\/domain\/list\.json/、'/domian/list.json'。

(2)rtype:可选参数。

 表示需要拦截的 Ajax 请求类型。例如 GET、POST、PUT、DELETE 等。

(3)template|function:必选参数,只取其中一项。

(4)template 表示数据模板,可以是对象或字符串。例如 { 'data|1-10':[{}] }、'@EMAIL'。

(5)function 指向本次请求的 Ajax 选项集,含有 url、type 和 body 三个属性,参见 XMLHttpRequest 规范。

提示

从 1.0 开始,Mock.js 通过覆盖和模拟原生 XMLHttpRequest 的行为来拦截 Ajax 请求,不再依赖于第三方 Ajax 工具库(例如 jQuery、Zepto 等)。

2. 拦截 Ajax 请求超时

配置拦截 Ajax 请求时的行为。支持的配置项有:timeout。

(1)Mock.setup( settings )

(2)settings

必选。

配置项集合。

(3)timeout

可选。

指定被拦截的 Ajax 请求的响应时间,单位是毫秒。值可以是正整数,例如 400,表示 400 毫秒 后才会返回响应内容;也可以是横杠 '-' 风格的字符串,例如 '200-600',表示响应时间介于 200 和 600 毫秒之间。默认值是'10-100'。

3. 本人理解的拦截

使用同一个方法名,去栏截指定方法。通过 call 修改 this 指向,到达 拦截。

// 实现原理

// 定义父类

var mock_ajax = function(str){

 this.showName=function(){

 console.log(str);

 }

 return this;

};

// 定义子类

var jquery_ajax = function(str){

 this.showName = function(){

 console.log('ajax');

 }

 return this;

};

jquery_ajax('').showName();// -> ajax

// 改变 this 指向

mock_ajax.call(jquery_ajax,'111');

// 调用

jquery_ajax.showName();

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map