自学内容网 自学内容网

vite构建工具解决vue3项目跨域的问题

1.什么是跨域

跨域是在网络开发中指浏览器出于安全原因,阻止来自一个域(网址)的网页向另一个域(网址)请求资源。这样做是为了防止恶意网站窃取用户信息或进行其他不正当行为。

2.解决办法

        2.1配置

跨域是因为浏览器的安全策略引起,所以我们不用浏览器向另一个域(网址)发请求,而是通过构建工具给另一个域(网址)发请求,这样就避免了跨域的问题

在vue项目中,找vite.config.js文件,写下面的代码:

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  /*-------------------------注意,上面的代码项目创建的时候自带的----------------*/
  //定义代理
  server: {
    proxy: {
      //(/api)表示获取路径中包含api的请求
      '/api': {
        //后台服务所在的源
        target: 'http://localhost:9090',
        changeOrigin: true,
        // 把(/api)替换陈空字符串
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  }
})

        2.2用axios发请求

//定义axios示例
const instance = axios.create({
/*
注意,这里只写/api,/api就代表我们在vite.config.js中定义的target: 'http://localhost:9090',
*/
  baseURL: '/api', 
  timeout: 10000
})

比如,我们给后台发请求,获取管理员的基本信息

//获取管理员的基本信息
export const adminGetInfoService = () => {
  return request.get('/admin/info')
}


原文地址:https://blog.csdn.net/2201_76067045/article/details/142981740

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!