推荐文章
1. 不要再问我跨域的问题了
2. vue开发环境和生产环境里面解决跨域的几种方法
以下是我对vue-cli搭建的项目中出现跨域问题的理解
首先需要知道,跨域问题是源于浏览器的同源策略。
当vue-cli搭建的项目在开发模式启动时,会启动一个本地服务器,而这个服务器中会采用了 http-proxy-middleware 中间件对 proxTable 中的配置地址进行代理(配置可见:vue开发环境和生产环境里面解决跨域的几种方法 中方法proxyTable)。每当匹配到地址请求,请求会通过该中间件进行代理。这导致我们在点开Network会发现我们请求的Request URL是: IP(本地服务IP)+目录名+接口名。
之后,后端接口的 Response 也是先经过本地的服务器(中间件),再被拿到。
具体解决
前端在调取后端接口的目标IP应该就是本地服务IP(接受代理)。再通过早已配置好的 proxyTable 来实现跳转至真正的后端目标IP(开始代理,代理配置可见:vue开发环境和生产环境里面解决跨域的几种方法 中方法proxyTable)
那么,一劳永逸的方法就是,在手动封装axios(采用的http库),直接就
axios.defaults.baseURL = window.location.origin