• 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
                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
                changeOrigin: true, 
                ws: true,
                pathRewrite: {
                    '^/sina': '' //不用改
                }
            },
            '/phpUrl': {  //为用于替换的的标识字符串
              target: 'http://192.168.1.7:8080/VueApi',//Axios跨域请求的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); });
  • 相关阅读:
    从头学Android之Android布局管理:LinerLayout线性布局
    Android onTouch事件传递机制
    android开源项目和框架
    <hdu
    <hdu
    <poj
    <poj
    <hdu
    <hdu
    <hdu
  • 原文地址:https://www.cnblogs.com/hailexuexi/p/14300579.html
Copyright © 2020-2023  润新知