注:
  官方一共提供了插件用以拦劫请求的接口
  1、<script src="http://rap.tounick.com/rap.plugin.js?projectId=项目ID"></script>这个地址可通过配置获取。RAP提供了 Mock插件(暂时仅支持Kissy和jQuery),使用只需要一步,将以下代码写在KISSY或jQuery js代码之后即可。
  2、AngularJS版本插件 ng-rap  这个是ng插件
  3、rap-node-plugin 地址:https://www.npmjs.com/package/rap-node-plugin

# 用法

一. 直接复制插件代码(项目路由 24,56,32 通过逗号隔开) 将以下代码写在KISSY或jQuery js代码之后即可:

通常情况下,引入顺序为: `KISSY/jQuery库` => `RAP插件`

在使用Magix等附加框架时,请注意引入顺序为:`KISSY/jQuery库` => `RAP插件` => `Magix`
<script src="http://rap.xx.com/rap.plugin.js?projectId=xx"></script>

# 1. 项目路由的作用

项目路由帮助多项目之间共享数据。比如项目A想借用项目B的数据,则在项目A的项目路由中添加B的projectId(在URL中可以查看到当前项目ID)

更复杂的例子,项目A的项目路由设置了23,35,38,则:

当请求项目A的MOCK数据时,若在A中找不到,则会去ID为23的项目找,若依然找不到会去ID为35的项目中,一直到ID为38的项目依然找不到则无结果返回。

二. 引用jquery

文件中会有白名单。白名单会根据RAP中已经编辑的接口文档,自动配置,RAP中未录入的接口不会做拦截

# RAP中实现mock数据的原理

  1. rap是扩展了jquery的ajax方法,通过拦截并测试请求路径是否处在白名单中,如果在则进行请求转发。如果不在不做处理直接请求
  2. rap返回的数据如果是mockjs,则是带有javascript方法的,需要调用mock方法。如果是mockjsdata,则返回可用的正常数据

# boss 后台

  1. 加入了一个httpRap.js文件。用于做相当于rap需要引入的js的功能。如拦截功能,mock数据功能
  2. 在公共http.js中引用httpRap.js做相应的事情实现拦截
  3. 在process.env.xxx 中做一些环境的限制

遇到问题:同源问题 https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials

还遇到了自定义头(header)的问题。 通过区分环境来控制类似问题