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)
           })
}
相关推荐
ttod_qzstudio29 分钟前
深入理解 Vue 3 的 h 函数:构建动态 UI 的利器
前端·vue.js
_大龄1 小时前
前端解析excel
前端·excel
1***s6321 小时前
Vue图像处理开发
javascript·vue.js·ecmascript
一 乐1 小时前
应急知识学习|基于springboot+vue的应急知识学习系统(源码+数据库+文档)
数据库·vue.js·spring boot
一叶茶1 小时前
移动端平板打开的三种模式。
前端·javascript
前端大卫1 小时前
一文搞懂 Webpack 分包:async、initial 与 all 的区别【附源码】
前端
Want5952 小时前
HTML音乐圣诞树
前端·html
老前端的功夫2 小时前
前端浏览器缓存深度解析:从网络请求到极致性能优化
前端·javascript·网络·缓存·性能优化
Running_slave3 小时前
你应该了解的TCP滑窗
前端·网络协议·tcp/ip
程序员小寒3 小时前
前端高频面试题之CSS篇(一)
前端·css·面试·css3