在vue.js中怎么解决跨域问题?解决跨域的方法!

2021-06-16 16:06:12 浏览数 (3129)

在新的框架学习中我们需要学的不仅仅是框架还要学习他的方法,那么就拿vue这个框架来说,在当下也是比价流行使用的,轻量级的特点而且容易掌握。那么今天我们就来说说有关于“在vue.js中怎么解决跨域问题?”这个问题吧!


1.什么是跨域?

对于问题我们要先知道什么是跨域这样子才可以方便的我们的了解。那么对于跨域简单的来说就是由于浏览器同源策略,一般通过发送请求URL的协议、域名、端口三者之间任意一种与我们当前的页面地址不同的都被称为跨域。如:网络协议不同、端口不同、域名不同、子域名不同、域名和域名对应ip等都被称为跨域。


2.如何解决跨域?

(1)、proxy代理

我们可以在项目中的​config​或者​index.js​中添加代码,代码如下:

 proxyTable:  {
      '/api': {
        target: 'http://localhost:8083/',//设置你调用的接口域名和端口号 别忘了加http
        changeOrigin: true,    //这里true表示实现跨域
        pathRewrite: {
          '^/api':'/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
        }
      }

在通过 axios 来实现发送访问,在​main.js​中导入已经安装好的 axios,并挂载到原型上去,代码如下:

import Axios from 'axios'  //导入axios

//将axios挂载到原型上
Vue.prototype.$axios = Axios;

最后我们再通过​this.$axios.get().then()​来实现数据请求,代码如下:

//发送get请求
show() {
      //用/api來代理'http://localhost:8083'
      this.$axios
        .get("/api/selectall")
        .then(res => {
          this.list = res.data.result;
          // }
        })
        .catch(e => {
          console.log(e);
        });
        },

//发送post请求
add() {
      this.$axios({
        method: "post",
        url: "/api/saveinfo",
        params: {
          name: this.name //传递的参数
        }
      }).then(res => {
                this.show();
      });
    },

总结:

这就是小编收集的相关资料,当然如果你有不一样的想法也可以和大家一起分享探讨学习,希望小编的分享对你有所帮助更多相关的 vue资料我们都可以 W3cschool中进行搜索相关内容学习和观看视频。