使用webpack-dev-server处理跨域请求的方法


Posted in Javascript onApril 18, 2018

在前端调试的时候,跨域一直都是一个比较麻烦的问题,这个在之前的文章 关于跨域问题的一个解决方法 中其实已经讨论了一些可以使用的方法。

如果要使用 JSONP,第一是需要修改的地方比较多,而且也不太符合前端发展的大趋势,如果使用 CORS 的话并没有 application/json 类型。而且更重要的是这只是在前端调试时候的需求,并不是在上线以后的需求,所以对后端有太多的入侵也不好。

所以就有一个念想突然在大脑中闪过——加入有一个代理不就可以解决这个问题了?但是又想了一下写起来还挺麻烦,于是就被搁置了。

直到前几天 Stone 提到其实 webpack-dev-server 早就想到并且已经帮我们实现了。

于是,我就在一个 Vue 项目中进行测试,发现真的很赞,既可以本地 Server 热加载,还可以直接跨域调用远程 API,完美解决了之前遇到的所有问题。

接下来我简要介绍一下步骤(以一个 Vue 脚手架建立的 webpack 项目为例):

首先检查 build/webpack.dev.conf.js 中是否有

proxy: config.dev.proxyTable,

这个配置项,如果被注释掉,请打开注释,如果没有,请加入到 devServer 对象中

然后在 config/index.js 中的 dev 对象中加入 proxyTable 配置项:

proxyTable: {
   '/**': {
    target: 'http://api.xxx.com',
    changeOrigin: true,
    secure: false
   }
  },

前面的键 /** 意思是代理所有请求,如果代理某些请求,可以将其改为诸如 /api 之类的字符串。

后面的 target 就是要代理到的网站,changeOrigin 的意思就是把 http 请求中的 Origin 字段进行变换,在浏览器接收到后端回复的时候,浏览器会以为这是本地请求,而在后端那边会以为是在站内的调用。

这样,通过这个简单的配置,就完美地解决了跨域的问题。

之后,在直接运行

npm run dev

的时候,就可以将测试前端中的 ajax 请求代理到后端服务器进行测试啦!

最后,贴上官方文档,具体的配置大家可以参考这里:

https://webpack.js.org/configuration/dev-server/#devserver-proxy

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 学习之二 属性相关
Nov 23 Javascript
Javascript高级技巧分享
Feb 25 Javascript
jQuery中animate用法实例分析
Mar 09 Javascript
js实现键盘Enter键提交表单的方法
May 27 Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
微信小程序五星评分效果实现代码
Apr 06 Javascript
利用 spin.js 生成等待效果(js 等待效果)
Jun 25 Javascript
基于Vue-cli快速搭建项目的完整步骤
Nov 03 Javascript
vue路由对不同界面进行传参及跳转的总结
Apr 20 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
Nov 07 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
Apr 18 #Javascript
jQuery实现的两种简单弹窗效果示例
Apr 18 #jQuery
vue双向数据绑定知识点总结
Apr 18 #Javascript
浅析vue中常见循环遍历指令的使用 v-for
Apr 18 #Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 #Javascript
JS实现二维数组横纵列转置的方法
Apr 17 #Javascript
redux中间件之redux-thunk的具体使用
Apr 17 #Javascript
You might like
php学习之function的用法
2012/07/14 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
详解python 爬取12306验证码
2019/05/10 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
自动化毕业生专业自荐书范文
2014/02/04 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python