前端解决axios跨域问题

前端解决axios跨域问题

step1.

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import axios from 'axios'    //axios -- npm install axios

Vue.config.productionTip = false
Vue.use(ElementUI)
Vue.prototype.$axios = axios   //全局引用
/* eslint-disable no-new */
axios.defaults.baseURL = '/api'    //添加 api,每次发送的请求都会带一个/api的前缀。
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

step2.

在项目下面有一个config目录,下面的index.js,修改 proxyTable

 proxyTable: {
      '/api': {
        target:'https://api.muxiaoguo.cn/api/', // 你请求的第三方接口
        changeOrigin:true, // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
        pathRewrite:{  // 路径重写,
          '^/api': ''  // 替换target中的请求地址,也就是说以后你在请求http://api.douban.com/v2/XXXXX这个地址的时候直接写成/api即可。
        }
      }
    },

step3.

this.$axios.get("/QqInfo?qq=664363325").then((resp)=>{
            console.log(resp)
        })

因为我们给url加上了前缀/api,我们访问/movie/top250就当于访问了:localhost:8080/api/movie/top250(其中localhost:8080是默认的IP和端口)。

在index.js中的proxyTable中拦截了/api,并把/api及其前面的所有替换成了target中的内容,因此实际访问Url是https://api.muxiaoguo.cn/api/QqInfo?qq=664363325。

至此,纯前端配置代理解决axios跨域得到解决。

原文地址 : https://www.yisu.com/zixun/81048.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值