vue使用axios请求后端数据

前后端分离项目的基础:

前后端跨域访问

vite.config.js中加入

复制代码
  // 1.为什么要跨域
//因为浏览器的同源策略,不同站点之间访问需要跨域
//实现跨域的方式:
  server: {
    proxy: {
      // 假设要跨域访问的后端 API 地址以 /api 开头
      '/api': { //表示拦截以/api开头的请求路径
        target: 'http://localhost:8089/', // 后端服务的实际地址
        changeOrigin: true,           //是否开启跨域
        rewrite: (path) => path.replace(/^\/api/, ''),//把/api变成空字符串
      },
    },
  },

完整vite.config.js文件

复制代码
import { fileURLToPath, URL } from 'node:url'

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

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  // 1.为什么要跨域
//因为浏览器的同源策略,不同站点之间访问需要跨域
//实现跨域的方式:
  server: {
    proxy: {
      // 假设要跨域访问的后端 API 地址以 /api 开头
      '/api': { //表示拦截以/api开头的请求路径
        target: 'http://localhost:8089/', // 后端服务的实际地址
        changeOrigin: true,           //是否开启跨域
        rewrite: (path) => path.replace(/^\/api/, ''),//把/api变成空字符串
      },
    },
  },
})

App.vue文件

复制代码
<template>
    <button @click="handleClick">跨域请求</button>
</template>

<script setup>
import axios from 'axios'; // 正确从 'axios' 包导入 axios  
       //将axios请求写在方法里面,通过点击事件调用方法向后端拿数据
       function  handleClick(){
           axios.get("api/Axios").then(Response=>{
               console.log(Response.data);
           })
           .catch(error=>{
               console.log('Error fetching data:',error);
           },
           )
         }
</script>

<style scoped>

</style>

Java中的servlet 服务

需要在maven的pom.xml中导入fastjson

复制代码
  <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.76</version>
    </dependency>

package Study.day08;

import com.alibaba.fastjson.JSON;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/Axios")
public class Axios extends HttpServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Student student=new Student("张三","男",23);
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/json; charset=utf-8");
        resp.getWriter().println(JSON.toJSON(student));
    }
}

后端服务访问页面:

前端成功拿到后端数据:

相关推荐
无限的鲜花几秒前
反射(原创推荐)
java·开发语言
IT二叔16 分钟前
Java项目部署-03-teamcity-cicd-docker镜像流水线方式部署
java·ci/cd·持续部署
前端之虎陈随易30 分钟前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·vue.js·人工智能·typescript·node.js
一路向北he32 分钟前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
kyriewen1 小时前
豆包和千问同时关了智能体,我用它们搭的 3 个自动化全废了——迁移方案整理
前端·javascript·ai编程
超级数据查看器1 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
前端一小卒1 小时前
我用 TypeScript 从零手写了一个 Claude Code,然后发现它的核心只有 30 行
前端·agent
铁皮饭盒1 小时前
用 Bun.cron 定时 7 月 7 日,为啥? 看图1
javascript
折哥的程序人生 · 物流技术专研2 小时前
《Java 100 天进阶之路》第50篇:阻塞队列与并发容器(2026版)
java·面试题·java进阶·blockingqueue·并发容器·集合源码·java100天进阶
ai_coder_ai3 小时前
编写自动化脚本,在自己后端服务中使用Open Api进行设备相关操作
java·运维·自动化