Vue之Axios跨域问题解决方案

vue.config.js

复制代码
//-----------------------Axios跨域请求-----------------------------------------
  devServer:{
    port:4000,//vue网页访问的端口
    host:"127.0.0.1",//vue网页访问的地址
    https:false,
    open:false,
    proxy: {
        '/sina': {  //为用于替换的的标识字符串
            target: 'http://192.168.1.7',//Axios跨域请求的IP (Sina Pbx Ip)
            changeOrigin: true, 
            ws: true,
            pathRewrite: {
                '^/sina': '' //不用改
            }
        },
         
      }
  } 
  //-------------------------------------------------------------------
复制代码

Login.vue

复制代码
 //------------------Axios跨域 Post请求--------------------------------
      var params=new URLSearchParams();
      params.append('login',"admin");
      params.append('password',"admin");
      
      this.$axios.post('/sina/api/sessions', params)
      .then(function (response) {
        console.log(response);
        
      }.bind(this))
      .catch(function (error) {
        console.log(error);
      });
//--------------------------------------------------------------
复制代码
/sina 为标识符 替换为  http://192.168.1.7
跨域的请求的地址为 http://192.168.1.7/api/sessions

注:每次修改 vue.config.js 文件后 要 重启项目
Ctrl+C 输入 y 退出
再重启 npm run serve

如果在一个项目中需要多个 请求地址,可以这样写
vue.config.js
复制代码
  //-----------------------Axios跨域请求-----------------------------------------
  devServer:{
    port:4000,//vue网页访问的端口
    host:"127.0.0.1",//vue网页访问的地址
    https:false,
    open:false,
    proxy: {
        '/sina': {  //为用于替换的的标识字符串
            target: 'http://192.168.1.7',//Axios跨域请求的IP (Sina Pbx IP)
            changeOrigin: true, 
            ws: true,
            pathRewrite: {
                '^/sina': '' //不用改
            }
        },
        '/phpUrl': {  //为用于替换的的标识字符串
          target: 'http://192.168.1.7:8080/VueApi',//Axios跨域请求的IP (PHP IP)
          changeOrigin: true, 
          ws: true,
          pathRewrite: {
              '^/phpUrl': '' //不用改
          }
      }
    }
  } 
  //-------------------------------------------------------------------
复制代码

Login.vue

复制代码
       //-----------------用户登陆判断----------------------------------
      let { user, password, number } = this.login;
      var params=new URLSearchParams();
      params.append('user_name',this.login.user);
      params.append('user_pwd',this.login.password);
      params.append('user_tel',this.login.number);
//this.$axios.post('http://192.168.1.7:8080/VueApi/Api_User_Login.php', this.login) this.$axios.post('/phpUrl/Api_User_Login.php', params) .then(function (response) { let { login_result, result } = response.data;//解析JSON console.log(login_result); if (login_result == "true") { this.$router.push("/Home"); //直接跳转 }else{ this.formHint = "用户名和密码错误!" } }.bind(this)) .catch(function (error) { console.log(error); });
复制代码

 

posted @   海乐学习  阅读(2558)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示