跨域问题前端解决

由于浏览器的同源策略,前后端分离的项目,调试的时候总是会遇到跨域的问题,这里通过修改前端代码解决跨域问题。

首先先查看前端代码的根目录下,有没有vue.config.js文件, 若有,使用方法1,若没有此文件,使用方法2

方法1

将vue.config.js修改如下:

module.exports = {
  devServer: {
    // 设置为0.0.0.0则所有的地址均能访问
    host: '0.0.0.0',
    port: 8080,
    https: false,
    hotOnly: false,
    // 跨域问题解决 代理(关键部分)
    proxy: {
      '/api': {
        target: 'http://localhost:8081',  // 设置后端接口的访问地址
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''  // 将请求路径中的 '/api' 替换为空字符串
        }
      }
    }
  }
}

方法2

在项目根目录的/config/index.js文件中,找到 proxyTable,然后进行同样的配置:

proxyTable: {
      '/api': {
        target: 'http://localhost:8081',  // 设置后端接口的访问地址
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''  // 将请求路径中的 '/api' 替换为空字符串
        }
      }
    },
通过方法1或者方法2配置好之后,设置axios请求的baseURL属性: '/api',相当于用'/api'代理请求后端的url
const request = axios.create({
  baseURL: '/api',
  timeout: 5000
});

export default request;

可以参考我的方式,将请求的API进行封装 

import Vue from 'vue'
import request from '@/api/request'

// axios.defaults.baseURL = "/api"
export function postAction(url, parameter) {
  return request({
    url: url,
    method: 'post',
    data: parameter
  })
}

在调用后端接口时,传参时只需要拼接后面那部分就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值