mockjs让前端开发独立于后端

mock.js 能够模拟ajax数据,拦截ajax请求,返回模拟数据,无需后端返回就能够测试前端程序前端

mockjs官网ajax

原文:http://i.jakeyu.top/2016/08/1...后端

首先在head头中引入咱们须要的mockjs文件服务器

<script src="http://mockjs.com/dist/mock.js"></script>

在ajax请求以前,用mack定义返回数据app

Mock.mock('http://laoyu', {
 "errorcode": 0,//0表示成功,1表示错误
 "message": "xx信息不完整", //弹出错误信息
});

在ajax中,open()的url要与mock中的相同,好比我这里是http://laoyu,那么post

XHR.open("post/get","http://laoyu",true/false)

好了,说到这里,咱们进行测试一下测试

<script>
//调用mock方法模拟数据
Mock.mock('http://laoyu', {
  "errorcode": 0,//0表示成功,1表示错误
  "message": "xx信息不完整", //弹出错误信息
});
//使用ajax进行测试
        var xhr = XMLHttpRequest();
        xhr.open("post","http://laoyu",true);
        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xhr.send(null);
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){
                if((xhr.status>=200 && xhr.status<300) || xhr.status== 304){
                    var data = JSON.parse(xhr.responseText);  
                    //由于reponseText返回的是字符串,将字符串转换成咱们想要的JSON数据,这样就能够调用了
                    console.log(data);  //在控制台中打印出返回的内容
                }else{
                    alert("Request was unsuccessful: " + xhr.status);
                }
            }
        }
</script>

看到没,返回了咱们使用mock模拟的数据,这样就能够无需后台,直接进行本身的测试了url

xhr.readyState的五种状态code

0 - (未初始化)尚未调用open()方法 
1 - (服务器链接已经创建)已调用open()方法,正在发送请求 
2 - (请求已接收)send()方法执行完成,已经接收到所有响应内容 
3 - (请求处理中)正在解析响应内容 
4 - (请求已完成)响应内容解析完成,能够在客户端调用了
相关文章
相关标签/搜索