003Axios网络请求跨域前端解决方案

创建项目npm create vite@latest

 名字

 选择

 选择

 进行

 这个页面这样写

 这个页面这样写

 删除这两个

 安装npm install axios

 安装npm install querystring

 

 

 

 

 

 

1、在 Vite 的配置文件中,可以通过 proxy 选项来配置代理,使得前端代码与接口请求在同一域下。例如:
//vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
server: {
proxy: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true,
rewrite: path => path.replace(/^\api/, '')
}
}
}
})

在这个例子中,将所有以 /api 开头的请求代理到 http://localhost:8080,同时需要设置 changeOrigin 为 true,表示更改源地址,这样才能避免跨域问题。

 

 

2、main.js文件内容
import { createApp } from 'vue'
import axios from 'axios'
import App from './App.vue'
const app=createApp(App)
app.provide("axios",axios)
app.mount('#app')

 

3、发异步请求的组件如下:
<script setup>
import { onMounted,reactive,inject} from 'vue';
import querystring from 'querystring'
let axios=inject("axios")
let emp=reactive({
id:0,
name:"",
money:0.0,
address:""
})

//注: http://localhost:5173/ 前端IP:端口号
onMounted(axios.post("http://localhost:5173/api/hello").then(res=>{
emp.id=res.data.id
emp.name=res.data.name
emp.money=res.data.money
emp.address=res.data.address
console.log(res.data)
}))

</script>

 

<template>
<p>welcome to Axios</p>
<ul>
<li>{{ emp.id }}</li>
<li>{{ emp.name }}</li>
<li>{{ emp.money }}</li>
<li>{{ emp.address }}</li>
</ul>
</template>


<style lang="scss" scoped>
</style>

 

posted @ 2025-03-13 10:17  张筱菓  阅读(48)  评论(0)    收藏  举报