使用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 相关文章推荐
iis6+javascript Add an Extension File
Jun 13 Javascript
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
jquery实现图片裁剪思路及实现
Aug 16 Javascript
JavaScript Promise启示录
Aug 12 Javascript
js中class的点击事件没有效果的解决方法
Oct 13 Javascript
bootstrap table插件的分页与checkbox使用详解
Jul 23 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
jQuery代码优化方法总结
Jan 29 jQuery
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
Oct 31 Javascript
解决vue 单文件组件中样式加载问题
Apr 24 Javascript
Vue单文件组件开发实现过程详解
Jul 30 Javascript
JavaScript浅层克隆与深度克隆示例详解
Sep 01 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实现小型站点广告管理
2006/10/09 PHP
关于php fread()使用技巧
2010/01/22 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
php实现的短网址算法分享
2014/06/20 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
python生成器generator用法实例分析
2015/06/04 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
python实现手机通讯录搜索功能
2018/02/22 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
python2和python3哪个使用率高
2020/06/23 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
电子商务应届生求职信
2013/11/16 职场文书
教师求职信
2014/06/17 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书