时间:2021-05-25
开发环境中跨域
使用vue-cli创建的项目,开发地址是localhost:8080,需要访问非本机上的接口http://192.168.0.112:8080/cms/queryMaterial。不同域名之间的访问,需要跨域才能正确请求。跨域的方法很多,通常都需要后台配置,不过vue-cli创建的项目,可以直接利用node.js代理服务器,通过修改vue proxyTable接口实现跨域请求。在vue-cli项目中的config文件夹下的index.js配置文件中,修改前的dev:
dev: { assetsSubDirectory: 'static', //静态资源根目录的子目录static,也就是dist目录下面的static assetsPublicPath: '/', //编译发布的根目录,可配置为资源服务器域名或 CDN 域名 proxyTable: {}, //proxyTable 代理的接口(可跨域) host: 'localhost', port: 8080, //dev-server的端口号,可以自行更改 autoOpenBrowser: false, //是否自动打开浏览器 errorOverlay: true, notifyOnErrors: true, poll: false, useEslint: true, showEslintErrorsInOverlay: false, devtool: 'cheap-module-eval-source-map', cacheBusting: true, cssSourceMap: true //默认情况下,关闭 CSS Sourcemaps,因为使用相对路径会报错 },只要修改里面的proxyTable: {}
proxyTable: { '/cms': { //代理地址 target: 'http://192.168.0.112:8080', //需要代理的地址 changeOrigin: true, //是否跨域 secure: false, pathRewrite: { '^/cms': '/cms' //本身的接口地址没有'/cms' 这种通用前缀,所以要rewrite,如果本身有则去掉(/cms等价于 /api"'}2、在代码中调用设置好的参数:
比如我在本项目中重新封装axios(api文件在/src/axios/request.js中),将配置好的接口地址作为baseURL拼接到接口路径中,应用参数部分如下:process.env.API_ROOT
最后重新启动项目就可以了,当npm run dev的时候就运行在生产环境,当npm run build的时候就是正式的线上环境。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前端开发时,请求后台接口经常需要跨域,vue-cli实现跨域请求只需要打开config/index.js,修改如下内容即可。//例如要请求的接口url为http
vue-cli中可以通过配置proxyTable解决开发环境的跨域问题,具体可以参考这篇文章:Vue-cliproxyTable解决开发环境的跨域问题如果后端接
网友问题:使用了vue-cli这个脚手架工具。在开发环境中如何配置跨域这个我懂。但是使用npmrunbuild后,里面所有的ajax的跨域请求url都变成了根目
使用vue-cli搭建的vue项目可以使用在项目内设置代理(proxyTable)的方式来解决跨域问题设置配置项的目录在config下的index.js,主要通
最近用vue-cli搭建了项目,准备上线时发现脚手架自带的npmrunbuil只能打出请求生产接口的生产包,但是项目肯定要先上测试环境,怎么用命令行打出请求测试