本文详解 Vue CLI Webpack 开发环境中的跨域问题解决方案。通过配置 config/index.js 中的 dev.proxyTable 选项,利用 http-proxy-middleware 实现 API 请求代理。文章介绍了基本配置方法、全局匹配策略以及自定义过滤器的使用,帮助开发者在本地开发阶段有效解决前后端分离带来的跨域限制。
Vue CLI Webpack 开发环境跨域配置
在 config/index.js 文件中编辑 dev.proxyTable 选项。开发服务器使用 http-proxy-middleware 进行代理转发。
为了解决跨域问题,
- 通常会使用 Jsonp,但是jsonp只能是get请求。
- 或者使用CORS支持,设置Access-Control-Allow-Origin: *
前置技能要求
0 前置技能
熟悉vue-loader 和 webpack
基本代理配置
1 基本配置
编辑confix/index.js文件 dev server使用的是http-proxy-middleware来代理
// config/index.js
module.exports = {
// ...
dev: {
proxyTable: {
// proxy all requests starting with /api to jsonplaceholder
'/api': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
The above example will proxy the request /api/posts/1 to http://jsonplaceholder.typicode.com/posts/1.
全局匹配与过滤器
2 全局匹配
you can provide a filter option that can be a custom function to determine whether a request should be proxied:
提供一个过滤器,制定路由规则和路由方法。
proxyTable: {
'*': {
target: 'http://jsonplaceholder.typicode.com',
filter: function (pathname, req) {
return pathname.match('^/api') && req.method === 'GET'
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。