[解决]mock.js无法拦截小程序请求

业务背景

前后端分离开发
想让mock.js拦截我的请求
然后返回测试数据
等后端写完接口后,再把mock.js去掉

业务代码

 const Mock = require('mockjs');
 Mock.mock('http://www.23.com', {
            'list|10': '冉娃娃,'
          });
          wx.request({
            url: 'http://www.23.com',
            complete (res) {
              console.log(res);
            }
          });

遇到的麻烦

  • 在小程序里面能够正常生成mock的模板数据
  • 但是发起的请求没有被拦截,而是直接请求到www.23.com

问题

  • 难道小程序不是基于XHR发起的请求么?怎么就拦截不了呢,有没有什么办法可以让mock.js拦截小程序请求呢
  • 或者除了mock.js,有没有其他工具可以实现类似功能的?同时支持各种平台(小程序,网页等等)
阅读 5.8k
2 个回答

自己启动一个json-server服务就可以了

是node的模块

确实是不可以,小程序不是浏览器环境。
request不是XHR也不是ajax。
又一种可行办法就是在response返回内容时,用mockjs,根据返回的内容再去mock出数据,再retrun出去。

题外话:
个人感觉官方的request写法比较繁琐,所以我用fly组件来替换了request,有兴趣的可以了解下。
小程序开发之一(使用fly进行http封装)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题