vue 前端解决跨域

造成跨域的三个场景:

1.ip(域名)相同,端口不同

2.ip不同,端口相同

3.协议不同,如一个是http,一个是https

 

解决方法:

1,前端

由于使用的webpack 初始化的vue 项目则修改如下文件:

config/index.js

module.exports = {
  dev: {

    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/api': {
        target: 'http://localhost:8099',//后端接口地址
        changeOrigin: true,//是否允许跨越
        pathRewrite: {
          '^/api': ''//重写,
        }
      }
    },

注:

前端访问服务地址:

http://localhost:8088/

后端接口地址:

http://localhost:8099/

 

前端接口访问代码:

  created() {
  },
  mounted() {
    this.initData()
  },
  methods: {
    initData() {
      this.axios.create({baseURL: '/api'}).get('/echart/echart3').then(({ data }) => {
        console.info(data)
        if (data.code === 1) {
          console.info(data.dataList)
        } else {
          console.info('error')
        }
      })
    },

 

 

虽然请求端口还是8088,但是已经成功反问到8099的数据了。

代码地址请转移:https://gitee.com/zhiqishao/echart-demo

 2.后端接口加注解解决,这样前端就不用改了

 

 

posted @ 2022-02-28 14:38  ~清风煮酒~  阅读(1380)  评论(0编辑  收藏  举报