Vue3 结合 .NetCore WebApi 前后端分离跨域请求简易实例

1、本地安装Vue3环境

参考:VUE3中文文档-快速上手

注意:初始安装vue时,需要安装router,否则后续也要安装

2、安装axios组件

比如:npm install axios@latest 或 pnpm install axios@latest

3、设置跨域请求代理

打开vue3项目根目录的 vite.config.js文件,插入跨域请求设置

这样实现的效果,假设你的前端域名是 http://localhost:8088

那么你访问 http://localhost:8088/api/hello 等于访问 http://localhost:5153/api/hello

javascript 复制代码
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'

export default defineConfig({
  plugins: [
    vue(),
    vueDevTools(),
  ],
  //跨越请求代理设置
  server:{
    proxy: {
        '/api': {
            target: 'http://localhost:5153',
            changeOrigin: true,
        }
},
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
})

4、后端.Net Core Webapi 接口返回JSON

cs 复制代码
using Microsoft.AspNetCore.Mvc;
using MyProj.Models;
using System.Text.Json;
namespace MyProj.Controllers
{

    [Route("api/login")]
    [ApiController]
    public class LoginController : ControllerBase
    {
        [HttpGet]
        public JsonResult Get(string pms)
        {
            //自定义Model,含2个属性。先初始化
            Rmessage r1 = new Rmessage("hello", "no data");

            //根据接口请求的参数值判断处理
            if(pms=="001")
            {
                r1.message = "right";
            }
            else
            {
                r1.message = "wrong";
            }
            //把最终的Rmessage实例JSON化返回
            return new JsonResult(r1);
        }

   
    }
}

5、Vue3前端发送请求,接收返回值

javascript 复制代码
import { ref } from 'vue'
import axios from 'axios'

let message = ref('please impress the button')

//按钮单击函数
function getApiData() {
        //axios触发GET请求,传递pms参数
        axios.get('api/login',{
          params: {
            pms:'001'
          }
        })
           .then(response => {
               //因为返回的是JSON,所以可以response.data直接读取message的值
                message.value = response.data.message
            })
           .catch(error => {
                console.log(error)
           })
}
相关推荐
RichardZhiLi1 分钟前
大前端全栈实践课程:章节二(前端工程化建设)
前端
毕设源码-赖学姐4 分钟前
【开题答辩全过程】以 基于VUE的环保网站设计为例,包含答辩的问题和答案
前端·javascript·vue.js
ZTrainWilliams5 分钟前
swagger-mcp-toolkit 让 AI编辑器 更快“读懂并调用”你的接口
前端·后端·mcp
伊步沁心19 分钟前
深入 useEffect:为什么 cleanup 总比 setup 先跑?顺手手写节流防抖 Hook
前端
小J听不清23 分钟前
CSS 字体样式全解析:字体类型 / 大小 / 粗细 / 样式
前端·javascript·css·html·css3
500佰25 分钟前
pencil on claude 让设计师和程序员少吵架的一种可能
前端
Jane-lan28 分钟前
NVM安装以及可能的坑
前端·node·nvm
幽络源小助理31 分钟前
Typecho大前端新闻博客主题源码下载:资讯门户风格模板安装教程 | 幽络源
前端
简离41 分钟前
Git 一次性清理已跟踪但应忽略文件
前端·git
清水寺小和尚41 分钟前
# 告别魔法:带你彻底搞透 Agent Loop、Skills、Teams 与 MCP 协议
前端