Vue里的proxyTable解决跨域,api接口管理

          本文单纯的介绍Vue项目中接口的集中管理以及跨域的解决方法。

1.webpack里的proxyTable设置跨域:config->index.js

module.exports = {
  dev: {
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/api':{
        target:'http://localhost:80',  //这里配置的是 请求接口的域名
        // secure: false, // 如果是https接口,需要配置这个参数
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
        pathRewrite:{
          '^/api':'' //路径重写,这里理解成用'/api'代替target里面的地址.
        }
      }
    },
  }

2.设置api
    2.1文件目录
                              在这里插入图片描述
    2.2 api.js 编码

import axios from 'axios'

axios.defaults.baseURL = '/api';
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8';
axios.defaults.withCredentials = true

//接口自定义

//修改用户信息接口
export const updateOneUser = params => {
  return axios.post('/anta/anta-back/src/php/updateUser.php', params)
    .then(res => res.data)
};

3.组件中引用

import {updateOneUser} from "../../api/api"
methods:{
   //给后台发送数据
    var params = new URLSearchParams();
    params.append('userphone', this.watchStudentInfo.userphone);
    params.append('userpass', this.watchStudentInfo.userpass);
    console.log(params)
    updateOneUser(params).then(data=>{
      //后台返回的数据
      if(data==1){
        //添加成功
        this.$message.success('修改成功')
      }else{
        //失败
        this.$message.success('修改失败')
      }
    }).catch(error=>{
      this.$message.success('修改失败')
    })
}

猜你喜欢

转载自blog.csdn.net/qq_43271452/article/details/89522256