一种前后端分层开发的数据调试方法

1,569 阅读2分钟
原文链接: github.com

问题背景

  1. 项目组分前端组、后台组;
  2. 前端组负责完成界面开发,交互逻辑;
  3. 后台组负责提供数据,提供操作接口;
  4. 前后端通过web service接口通信;
  5. 在开发过程中,前端和后台的开发工程环境不在同一个域;
  6. 由于是开发的web是基于浏览器运行,所以数据的请求受同源策略影响;
  7. 在发布时,前端会打包相关文件,并放入到后台工程,合并为一个域部署;
  8. 为了解决开发过程中跨域的数据联调,提出如下的临时方案。

设计思路

  1. 后台临时提供一个登录页面,前端通过该页面输入登录信息,点击登录后,页面打印出登录后的tocken字符串;
  2. 前端启动本地服务器环境(localhost),目前我们采用webstorm开发环境;
  3. 通过chrome打开web首页;
  4. 按F12打开开发工具,增加登录页获取到的tocke到cookie中,约定命名,前端会在每次请求接口时,把该tocke附加在header上;
  5. 后台收到请求后,判断header里是否有合法tocken,有则完成用户身份认证;
  6. 关于跨域,由于采用chrome调试,且只需要满足开发调试,所以,简单的采用CORS跨域解决方案即可;

2017年更新

随着对前端部署的深入学习,目前采用的开发方式是:

  1. 前端通过browsersync 搭建实时同步开发服务器;
  2. 利用gulp watch检测文件修改后,编译打包文件;
  3. 跨域采用http-proxy中间件将后台的接口请求转发到指定的内部服务;比如:约定api/*下的所有请求均代理到192.2.2.2:8080服务上.通过后台实现跨域;

参考

  1. 同源策略
  2. CORS(跨域资源共享,Cross-Origin Resource Sharing)