当前位置: 首页 > news >正文

解决跨域问题(vite、axios/koa)

两种方法选其一即可

一、后端koa设置中间件

app.use(async (ctx, next)=> {ctx.set('Access-Control-Allow-Origin', '*');ctx.set('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');ctx.set('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');if (ctx.method == 'OPTIONS') {ctx.body = 200; } else {await next();}})

二、前端

1.vite.config.ts文件配置proxy代理

import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import path from 'path'
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],resolve: {alias: {'@': path.resolve(__dirname, './src')},},css: {preprocessorOptions: {scss: {additionalData: `@use "@/style/global.scss" as *;`,}}},server:{proxy:{"/api":{target:"http://localhost:3000/",changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, '')}}}
})

2.axios配置文件

import axios from 'axios';const http=axios.create({baseURL:'/api',timeout: 1000
})export default http;

3.在main.ts文件中引入axios

import { createApp } from 'vue'
import './style.scss'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import {router} from './router/index.ts'import axios from 'axios'createApp(App).use(ElementPlus).use(router).mount('#app')
createApp(App).config.globalProperties.$axios=axios

三、使用

import http from '@/plugins/axios'
import {onMounted,ref} from 'vue';const getData = async () => {http.get('/products').then(res=>{console.log('test.res');})
}

http://www.lryc.cn/news/390194.html

相关文章:

  • echarts实现3D柱状图(视觉层面)
  • K8S集群进行分布式负载测试
  • 20.《C语言》——【移位操作符】
  • 你想活出怎样的人生?
  • py黑帽子学习笔记_burp
  • selenium,在元素块下查找条件元素
  • 认识String类
  • 计算机图形学入门23:蒙特卡洛路径追踪
  • 探索 TensorFlow 模型的秘密:TensorBoard 详解与实战
  • yolov8obb角度预测原理解析
  • CICD之Git版本管理及基本应用
  • Python作用域及其应用
  • 谷歌上架,应用被Google play下架之后,活跃用户会暴跌?这是为什么?
  • web安全渗透测试十大常规项(一):web渗透测试之Fastjson反序列化
  • Unity 3D软件下载安装;Unity 3D游戏制作软件资源包获取!
  • PyTorch之nn.Module与nn.functional用法区别
  • 2024.06.24 校招 实习 内推 面经
  • 【C++】using namespace std 到底什么意思
  • 基于ESP32 IDF的WebServer实现以及OTA固件升级实现记录(三)
  • 116-基于5VLX110T FPGA FMC接口功能验证6U CPCI平台
  • Android - Json/Gson
  • 盲信号处理的发展现状
  • 二轴机器人装箱机:重塑物流效率,精准灵活,引领未来装箱新潮流
  • 使用python做飞机大战
  • Python面向对象编程:派生
  • 华为仓颉编程语言
  • 【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(2)
  • 解锁数据资产的无限潜能:深入探索创新的数据分析技术,挖掘其在实际应用场景中的广阔价值,助力企业发掘数据背后的深层信息,实现业务的持续增长与创新
  • Bridging nonnull in Objective-C to Swift: Is It Safe?
  • 算法训练 | 图论Part1 | 98.所有可达路径