使用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 相关文章推荐
判断访客终端类型集锦
Jun 05 Javascript
css如何让浮动元素水平居中
Aug 07 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
如何动态加载外部Javascript文件
Dec 02 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
May 28 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
详解HTML5 使用video标签实现选择摄像头功能
Oct 25 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
Jan 07 Javascript
JS判断数组是否包含某元素实现方法汇总
Jun 24 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 Javascript
原生JS实现弹幕效果的简单操作指南
Nov 10 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
mac下安装nginx和php
2013/11/04 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
详解vue axios二次封装
2018/07/22 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
Pandas中把dataframe转成array的方法
2018/04/13 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Python列表list操作相关知识小结
2020/01/29 Python
基于python实现模拟数据结构模型
2020/06/12 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
护士个人简历自荐信
2013/10/18 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
入党现实表现材料
2014/12/23 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
React列表栏及购物车组件使用详解
2021/06/28 Javascript