使用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 相关文章推荐
音乐播放用的的几个函数
Sep 07 Javascript
jquery中常用的SET和GET
Jan 13 Javascript
从父页面读取和操作iframe中内容方法
Jul 25 Javascript
JavaScript中SQL语句的应用实现
May 04 Javascript
js跨域请求数据的3种常用的方法
Dec 01 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
原生JS京东轮播图代码
Mar 22 Javascript
webpack源码之loader机制详解
Apr 06 Javascript
vue-cli构建项目下使用微信分享功能
May 28 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 Javascript
element中的$confirm的使用
Apr 26 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
cmd下运行php脚本
2008/11/25 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
JSONP跨域请求
2017/03/02 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
python合并同类型excel表格的方法
2018/04/01 Python
python各类经纬度转换的实例代码
2019/08/08 Python
python实现图像拼接功能
2020/03/23 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
Python如何获取文件指定行的内容
2020/05/27 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
介绍一下SQL Server的全文索引
2013/08/15 面试题
护士自荐信怎么写
2013/10/18 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
3的组成教学反思
2014/04/30 职场文书
工作推荐信范文
2014/05/10 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
社区禁毒工作方案
2014/06/02 职场文书
创先争优活动心得体会
2014/09/04 职场文书
2015年库房工作总结
2015/04/30 职场文书
新员工辞职信范文
2015/05/12 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python