本地开发环境请求服务器接口跨域的问题(vue的问题)

简介: 本地开发环境请求服务器接口跨域的问题(vue的问题)

上面的这个报错大家都不会陌生,报错是说没有访问权限(跨域问题)。本地开发项目请求服务器接口的时候,因为客户端的同源策略,导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况:

可以看到,此时我们点击获取数据,浏览器提示我们跨域了。所以我们访问不到数据。那么接下来我们演示设置允许跨域后的数据获取情况:

我们在1出设置了允许本地跨域,在2处,要注意我们访问接口时,写的是/api,此处的/api指代的就是我们要请求的接口域名。如果我们不想每次接口都带上/api,可以更改axios的默认配置axios.defaults.baseURL = '/api';这样,我们请求接口就可以直接this.$axios.get('app.php?m=App&c=Index&a=index'),很简单有木有。此时如果你在network中查看xhr请求,你会发现显示的是localhost:8080/api的请求地址。这样没什么大惊小怪的,代理而已:

好了,最后附上proxyTable的代码:

proxyTable: {
      // 用‘/api’开头,代理所有请求到目标服务器
      '/api': {
        target: 'http://jsonplaceholder.typicode.com', // 接口域名
        changeOrigin: true, // 是否启用跨域
        pathRewrite: { //
          '^/api': ''
        }
      }
}

注意:配置好后一定要关闭原来的server,重新npm run dev启动项目。不然无效。

axios的封装,主要是用来帮我们进行请求的拦截和响应的拦截。在请求的拦截中我们可以携带userToken,post请求头、qs对post提交数据的序列化等。在响应的拦截中,我们可以进行根据状态码来进行错误的统一处理等等。axios接口的统一管理,是做项目时必须的流程。这样可以方便我们管理我们的接口,在接口更新时我们不必再返回到我们的业务代码中去修改接口。


相关文章
|
安全 JavaScript 应用服务中间件
vue-cli搭建代理服务器,将请求转发到后台服务器
vue-cli搭建代理服务器,将请求转发到后台服务器
137 0
|
6月前
|
JavaScript API
本地开发环境请求服务器接口跨域的问题(vue的问题)
本地开发环境请求服务器接口跨域的问题(vue的问题)
500 1
|
6月前
|
JavaScript API
解决Vue项目请求接口跨域的问题,配置Vue项目index.js代理请求服务器端接口
解决Vue项目请求接口跨域的问题,配置Vue项目index.js代理请求服务器端接口
解决Vue项目请求接口跨域的问题,配置Vue项目index.js代理请求服务器端接口
|
6月前
|
前端开发 JavaScript API
Vue 前端服务器API根据不同环境配置
Vue 前端服务器API根据不同环境配置
63 0
|
JavaScript 项目管理
SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置
SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置
147 0
|
JavaScript 安全 前端开发
Vue项目中你是如何解决跨域的呢?
Vue项目中你是如何解决跨域的呢?
155 0
|
JavaScript 前端开发 应用服务中间件
Vue 前端接口跨域,本地 Nginx 代理配置
Vue 前端接口跨域,本地 Nginx 代理配置
451 0
|
JavaScript 前端开发 应用服务中间件
vue不同环境使用axios跨域,前端解决方案
vue不同环境使用axios跨域,前端解决方案
619 0