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();
相关推荐
-
Nodejs如何搭建Web服务器
使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.
-
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
本文实例讲述了AngularJS实现与Java Web服务器交互操作的方法.分享给大家供大家参考,具体如下: AngularJS是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web服务器进行交互. 准备工作 1.下载angular js库. 官网下载地址:https://angularjs.org/ 或者点击此处本站下载. 2.开发环境准备,由于是和Tomcat服务器
-
WebSocket+node.js创建即时通信的Web聊天服务器
本文实例node.js创建即时通信的Web聊天服务器,供大家参考,具体内容如下 1.使用nodejs-websocket nodejs-websocket是基于node.js编写的一个后端实现websocket协议的库, 连接:https://github.com/sitegui/nodejs-websocket. (1)安装 在项目目录下通过npm安装:npm install nodejs-websocket (2)创建服务器 //引入nodejs-websocket var ws
-
在windows上用nodejs搭建静态文件服务器的简单方法
在windows上用nodejs搭建一个静态文件服务器,即使你一点基础没有也能学会nodejs静态文件服务器的搭建,本文介绍的非常详细,很适合零基础入门的朋友学习. 首先安装nodejs: •新建一个node文件夹 •下载node.exe到该文件夹 •下载npm然后解压到该文件夹 •现在node文件夹是这样的 •把该目录加入到path环境变量 •在命令行执行 node -v npm -v 如果得到了版本号则表示nodejs安装完成 •在命令行中执行 npm config set registry
-
JS跨域请求外部服务器的资源
tomcat服务器提供的接口,不能在其他域中访问的时候,需要增 Access-Control-Allow-Origin:* 以下操作均在需要被访问的项目中设置 1.编写拦截器代码 package com.soft.filter; /** * Created by Administrator on 2017/2/6. */ import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IO
-
JavaScript获取服务器时间的方法详解
本文实例讲述了JavaScript获取服务器时间的方法.分享给大家供大家参考,具体如下: Javascript是运行在客户端的脚本,我们一般都用new Date()来获取当前时间,但是得到的是客户端的时间,客户端时间是随意更改的,如果要做一个产品发布倒计时的话,客户端时间一改,就要闹笑话了.业务中需要用到服务器时间的场景还有很多,那么仅仅通过js怎么拿到服务器时间呢?事实上,只需要一个ajax请求就搞定,通过读取XMLHttpRequest对象的响应头里面的时间戳得到当前服务器时间! 原理就是这
-
JS检测是否可以访问公网服务器功能代码
wifi认证开发过程所用到的,源码如下: 注:检测AC是否放行成功,是否可以访问公网阿里云服务器 功能调用: checkNet().then(function(res) { if(res) { //连网成功 } } else { //连网失败 } }) 功能代码: (function() { //检测入口 checkNet = function() { var def = $.Deferred(); xiuNet(null).then(function(res) { netWork(null).
-
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,
-
CentOS服务器环境下MySQL主从同步配置方法
本文实例讲述了CentOS服务器环境下MySQL主从同步配置方法.分享给大家供大家参考,具体如下: 一.环境 主机: master操作系统:centos 5.3 IP:192.168.1.222 MySQL版本:5.0.77 从机: slave操作系统:centos 5.3 IP:192.168.1.220 MySQL版本:5.0.77 二.创建数据库 分别登录master机和slave机的 mysql:mysql –u root –p 创建数据库: create database repl;
-
Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法
本文实例讲述了Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法.分享给大家供大家参考,具体如下: 这里为Ubuntu14.04系统下配置PHP7.0+Apache2+Mysql5.7,主要目的是为了试玩WordPress. 更新系统资源 sudo apt-get update sudo apt-get uograde Apache2 安装apache sudo apt-get apache2 编辑apache主配置文件/etc/apache2/apach
-
ubuntu服务器环境下安装python的方法
本文实例讲述了ubuntu服务器环境下安装python的方法.分享给大家供大家参考,具体如下: ubuntu 14.04 --16.04 版本默认是安装的是python 2.7 1.查看当前python版本 $python --version 2.升级到python3.X版本 $sudo add-apt-repository ppa:fkrull/deadsnakes#添加一个源 $sudo apt-get update#更新源列表,以获取最新的版本 $sudo apt-get install
-
CentOS7服务器环境下vsftpd安装及配置方法
本文实例讲述了CentOS7服务器环境下vsftpd安装及配置方法.分享给大家供大家参考,具体如下: 0x:卸载vsftpd [root@localhost ~]# yum remove vsftpd [root@localhost ~]# find / -name "vsftpd*" /etc/vsftpd /etc/vsftpd/vsftpd.conf.bak [root@localhost ~]# rm -fr /etc/vsftpd/ 1x:重新安装 [root@localho
-
redis服务器环境下mysql实现lnmp架构缓存
配置环境:redhat6.5 server1:redis(172.25.254.1) server2:php(172.25.254.2) server3:mysql(172.25.254.3) 配置步骤: server2: 1.server2安装php的redis相应模块 2.nginx安装 [root@server2 php-fpm.d]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm warning: nginx-1.8.0-1.el6.ngx.x86_
-
js与jQuery实现的兼容多浏览器Ajax请求实例
ajax我们经常会用到的,但网上找到的大部份ajax兼容性都不强,下面自己改了一个不错的兼容性很强的ajax函数,同时后面介绍的jquery ajax 兼容性也很强. 一.纯js实现的Ajax实例: 复制代码 代码如下: var ajax = function() {}; ajax.prototype = { request: function(method, url, callback, postVars) { var xhr = this.createXhrObjec
-
windows10环境下用anaconda和VScode配置的图文教程
1.文件下载 最新的Anaconda3-5.1.0-Windows-x_64.exe版本中在安装的时候已经打包好了vscode,就是在anaconda3安装完成之后,会提示你是否要安装vscode,然后勾选就可以完成vscode的安装. Anaconda3-5.1.0-Windows-x_64.exe下载链接:点击打开链接 2.Anaconda3安装流程 直接点击exe文件,如下图所示 点击Next 等待安装的完成,然后打开VS code,界面如下图所示. 3.vscode的使用 本文因为配置的
-
Python环境下搭建属于自己的pip源的教程
一.安装pip2pi工具: pip install pip2pi 或: git clone https://github.com/wolever/pip2pi cd pip2pi python setup.py install 二.创建存放软件包的仓库: mkdir /opt/python/soft/pypi.jb51.net 三.下载软件包并建立索引: 单独下载某个软件包 pip2tgz /opt/python/soft/pypi.jb51.net/ routes==1.12.3 批量下载软件
-
js每隔5分钟执行一次ajax请求的实现方法
一个页面好像只能有一个 window.onload=function(){},所以要有多个事件,这样写就好了 复制代码 代码如下: window.onload=function(){ //假设这里每个五分钟执行一次test函数 publicBusi(); personBusi(); } function publicBusi(){ setTimeout(personBusi,1000*60*7);//这里的1000表示1秒有1000毫秒,1分钟有60秒,7表示总共7分钟 $.post('${ba
随机推荐
- Sql Server中Substring函数的用法实例解析
- 解锁redis锁的正确姿势
- 浅谈java异常处理之空指针异常
- Python类方法__init__和__del__构造、析构过程分析
- js实现权限树的更新权限时的全选全消功能
- Android中LinearLayout布局的常用属性总结
- Python中的anydbm模版和shelve模版使用指南
- 如何使用JSP+MySQL创建留言本(三)
- 《学习与工作》,学习就是为工作,工作也可以学习
- jQuery-ui引入后Vs2008的无智能提示问题解决方法
- jquery根据一个值来选中select下的option实例代码
- C 语言常用方法技巧
- 让一张700M CD光盘装下 900M文件的超级方法 推荐
- C++获得文件状态信息的方法
- C/C++中运算符的优先级、运算符的结合性详解
- php中引用&的用法分析【变量引用,函数引用,对象引用】
- 23种设计模式(12)java模版方法模式
- 浅谈Python中带_的变量或函数命名
- PHPExcel 修改已存在Excel的方法
- 基于红黑树插入操作原理及java实现方法(分享)