使用webpack-dev-server处理跨域请求的方法 在前端调试的时候,跨域一直都是一个比较麻烦的问题,这个在之前的文章 关于跨域问题的一个解决方法 中其实已经讨论了一些可以使用的方法。 如果要使用 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 请求代理到后端服务器进行测试啦! 最后,贴上官方文档,具体的配置大家可以参考这里: http://webpack.js.org/configuration/dev-server/#devserver-proxy 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。