vue-cli 前端开发,后台接口跨域代理调试问题
使用 webpack的方式开发的时候,前台开发过程中需要调用很多后台的数据接口,但是通常前后台分离的开发方式,后台的接口数据很可能是不方便或者是不能在前端同学的电脑上运行的,也就出现了所谓的跨域问题。
当然,开发过程中可以使用模拟的json数据来替代,但是实际的测试环境,以及联调环节还是必须要运行后台开发人员的数据比较保险,特别是存在条件式的判断等问题的时候。
其实我们此时只要对脚手架的配置文件进行简单的修改就可以实现了。
第一步,实现跨域代理请求。
修改 /config/index.js 里面的 dev下的proxytable
/**
* 前端开发数据交互node端代理的说明
* 示例中: /api/act 代表接口的基本地址
* @target: 目标服务器的地址
* @ changeOrigin: 是否跨域(一般都可以设置为true)
* @ pathRewrite: 将当前路径,重定向到目标路径,可以用于调试
* 以下示例,即可将 this.$http.get('/api/act',...) 转发到 this.$http.get('http://localhost:8080/static/mock',...)
*/
proxyTable: {
'/api/act': {
target: 'http://localhost:8080/',
changeOrigin: true,
pathRewrite: {
'^/api/act': '/static/mock'
}
}
}
经过以上设置,即可在vue文件中使用
this.$http.get('/api/act/xxx.json') 的方式请求数据,请求会自动转发到 项目目录下的 /static/mock/xxx.json
如果需要连接测试同学的服务器(通常都是局域网),就可以将上面的 target 修改为测试同学的ip及端口即可。 当然 接口规则遵循restFull最好。
第二步,实现请求类型的转发。
此时,还存在一个问题,虽然以上代理解决了请求转发的问题,能确保测试环境迁移到生产环境无须再次修改接口名称。但是标准的请求协议,可不能都用get,所以如果我们的数据是自己编写的静态json模拟数据,那它只能接受get请求,对于post put delete 等是无法正确相应的。 所以,接下来我们还需要实现将所以类型的请求转发为get请求,这样在测试环境,就可以尽情的使用静态的json文件来模拟各种请求的数据了。
在/build/dev-server.js中 大约 46行
// proxy all method to GET
app.use(function(req,res,next){
req.method = 'GET';
next();
});
这样,就可以实现所有的请求类型全部被转为get请求进行了。 而与后台联调的时候,请求真实的接口时,请注意将这里注释掉,并重启服务。否则所有的请求都会变成get哦。
好了,这样就完美的实现了,前后端完全分离调试数据的功能了。
vue-cli 前端开发,后台接口跨域代理调试问题的更多相关文章
- Next.js 配置接口跨域代理转发
		
使用 create-next-app 创建的 Next.js 项目配置接口跨域代理转发需要用到 custom server 功能. 先安装好 express 和 http-proxy-middlewa ...
 - 用 Nokitjs 解决前端开发中的跨域问题
		
问题 在开发一些「单页应用」时,通常会使用 Ajax 和服务器通讯,比如 RESTful API,通常「前端」和「服务端 API」可能是有不同人员在负责,也不在同一个工程下,那么开发过程中就可能会遇到 ...
 - vue proxyTable 接口跨域请求调试
		
在不同域之间访问是比较常见,在本地调试访问远程服务器....这就是有域问题. VUE解决通过proxyTable: 在 config/index.js 配置文件中 dev: { env: requir ...
 - vue proxyTable 接口跨域请求调试(五)
		
在不同域之间访问是比较常见,在本地调试访问远程服务器....这就是有域问题. VUE解决通过proxyTable: 在 config/index.js 配置文件中 dev: { env: requir ...
 - Vue  proxyTable 解决开发环境的跨域问题
		
在 config/index.js 配置文件中,添加 dev: { proxyTable: { '/ssp/withdraw': { target: 'http://dev.home.phiwifi. ...
 - Nginx解决前端调用后端接口跨域问题
		
1.项目中遇到的问题描述: 前端调用zuul统一网关服务接口,请求状态码200,但是无返回数据. 浏览器控制台报错信息:No Access-Control-Allow-Origin header i ...
 - 转换:使用vue-axios和vue-resource解决vue中调用网易云接口跨域的问题
		
本人配置成功https://segmentfault.com/a/1190000011072725
 - 前端vue开发中的跨域问题解决,以及nginx上线部署。(vue devServer与nginx)
		
前言 最近做的一个项目中使用了vue+springboot的前后端分离模式 在前端开发的的时候,使用vue cli3的devServer来解决跨域问题 上线部署则是用的nginx反向代理至后台服务所开 ...
 - vue开发环境配置跨域,一步到位
		
本文要实现的是:使用vue-cli搭建的项目在开发时配置跨域,上线后不做任何任何修改,接口也可以访问,前端跨域解决方案 production:产品 生产环境 development:开发 开发环境 1 ...
 
随机推荐
- Java Socket通信以及可能出现的问题解决
			
Java中基于TCP协议实现网络通信的两个类:客户端的Socket和服务器端的ServerSocket. Socket通信模型如图所示: 不管Socket通信的功能有多复杂,任何socket通信过程的 ...
 - 学习如何看懂SQL Server执行计划(一)——数据查询篇
			
一.数据查询部分 1. 看到执行计划有两种方式,对sql语句按Ctrl+L,或按Ctrl+M打开显示执行计划窗口每次执行sql都会显示出相应的执行计划 2. 执行计划的图表是从右向左看的 3. SQL ...
 - python数据结构之栈与队列
			
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
 - fiddler 监听HttpClient发送的请求
			
用HttpClient模拟浏览器发送请求,设置一下代理httpClient.getHostConfiguration().setProxy("127.0.0.1", 8888);
 - 从零开始配置TypeScript + React + React-Router + Redux + Webpack开发环境
			
转载请注明出处! 说在前面的话: 1.为什么不使用现成的脚手架?脚手架配置的东西太多太重了,一股脑全塞给你,我只想先用一些我能懂的库和插件,然后慢慢的添加其他的.而且自己从零开始配置也能学到更多的东西 ...
 - 手动打包MVC项目成Web Deploy包,发布至服务器
			
①确保服务器上安装了Web Deploy,可以使用微软Web Paltform Installer安装.https://www.microsoft.com/web/downloads/platform ...
 - Winform常用的一些功能收集(持续更新)
			
#region progressBar实时显示进度 private void button1_Click(object sender, EventArgs e) { int i = 10000; pr ...
 - 我的three.js学习记录(二)
			
通过上一篇文章我的three.js学习记录(一)基本上是入门了three.js,但是这不够3D,这次我希望能把之前做的demo弄出来,然后通过例子来分析操作步骤. 1. 示例 上图是之前做的一个dem ...
 - 吐槽CSDN--想钱想疯了--推荐文章里面广告博文去不掉
			
CSDN广告手段高,广告博文删不掉! 如图所示,我自己的博客文章下面有个相关文章推荐,这是csdn新出的信息流式内容呈现方式,也没什么太大问题.只是,你在里面放广告"羊毛衫,弹力裤" ...
 - 谦先生的程序员日志之我的hadoop大数据生涯一
			
从一个初级程序员到高级程序员的经历 你好!我是谦先生,我是茫茫程序猿中的一猿,平凡又执着. 刚入行的时候说实话,啥都不懂,就懂点皮毛的java,各种被虐狗的感觉.又写js又写css又写后台...慢慢被 ...