使用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 相关文章推荐
用jscript启动sqlserver
Jun 21 Javascript
node.js中的http.response.write方法使用说明
Dec 14 Javascript
JQuery球队选择实例
May 18 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
Feb 19 Javascript
ES6中module模块化开发实例浅析
Apr 06 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
Dec 06 Javascript
微信小程序实现音乐播放器
Nov 20 Javascript
node静态服务器实现静态读取文件或文件夹
Dec 03 Javascript
JavaScript接口实现方法实例分析
May 16 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 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+SQLite存储方案
2010/09/04 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
Python 文件处理注意事项总结
2017/04/10 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
对numpy中shape的深入理解
2018/06/15 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
python如何把字符串类型list转换成list
2020/02/18 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
python之语音识别speech模块
2020/09/09 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
《阳光》教学反思
2014/02/23 职场文书
求职简历自我评价范例
2014/03/12 职场文书
家长寄语大全
2014/04/02 职场文书
人事经理岗位职责
2014/04/28 职场文书
学校2014年度工作总结
2014/12/06 职场文书
售后服务质量承诺书
2015/04/29 职场文书
活动总结书怎么写
2015/05/11 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
python基础之模块的导入
2021/10/24 Python