vue3项目实战的请求接口问题(一)跨域问题+解决方法

vue3请求接口相关文章【点击可进入相关文章查看】
vue3项目实战中的接口调用🔥
vue3项目实战中的接口调用方法(一)async/await用法 🔥🔥
vue3项目实战中的接口调用方法(二)fetch用法 🔥

前言引入

请求接口的过程中,我们会碰到各种各样的问题,可以分为 请求参数Body)(参数名数据格式请求地址URL,其中*请求地址会涉及到 跨域问题 的解决,从而实现请求地址的成功请求。
👏👏👏本期文章将会介绍跨域问题,并推荐两种用在不同领域的解决方法。👏👏👏

跨域问题

当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时,那说明跨域了。(如下图👇👇)

  • 跨域是因为浏览器的同源策略所导致,同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,同源是指:域名、协议、端口相同

在这里插入图片描述

解决跨域问题常用方法🔥

以下是比较常用的两种方法。对于后台而言,推荐第一种方法。

一、proxy解决跨域【常用】🔥

🔥vue.config.ts 中设置如下代码片段
在这里插入图片描述
完整代码示例:(根据需求替换)

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 vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),],
    server: {
      // port:5000,
      cors: true,
      proxy: { // 配置跨域
        '/store': {
          // target: 'http://my.mcdd.top:9527/',
          target: 'http://localhost:1347/', // 根据需求替换 请求后台接口
          changeOrigin: true, // 允许跨域
          ws: true,
          rewrite: (path) => path.replace(/^\/store/, '') // 重写请求
      }
      }
    }
})

🔥创捷 axios 实例时,将 baseUrl 设置为 ‘/api’
(这里的api可以是其他,确保使用时保持一致即可)

在这里插入图片描述
代码示例

// 引入axios封装
import axios from 'axios'

// 创建axios实例
const request = axios.create({
    baseURL: '/store', // url = base url + request url
    timeout: 5000 // 5s超时
})

二、JSONP解决跨域

Jsonp(JSON with Padding) 是json的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即 跨域读取数据

<!DOCTYPE html>
       <html>
       <head>
           <meta charset="utf-8">
       </head>
       <body>
       <div id="textID"></div>
       <script type="text/javascript">
           function text_jsonp(req){
               // 创建script的标签
               var script = document.createElement('script');
               // 拼接 url
               var url = req.url + '?callback=' + req.callback.name;
               // 赋值url
               script.src = url;
               // 放入头部
               document.getElementsByTagName('head')[0].appendChild(script);
           }
       </script>
       </body>
       </html>

summary

跨域问题的解决在请求接口过程中是必行之路,因此需要一个通用且高效的方法解决跨域。

下期预告

vue3项目实战中的接口调用方法(三)axios请求

vue3+antd v-for循环实现多级菜单栏

vue3+antd 菜单栏处理子菜单有无children的两种方法

(如果对此专栏内容感兴趣,可订阅本专栏,后续会不定期更新内容~)

  • 14
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
要实战下载一个基于Spring Boot和Vue 3的大型前后端分离项目,可以按照以下步骤进行: 1. 确保你已经安装了相关的开发环境,包括Java开发环境和Node.js环境。可以在官方网站上下载并安装最新版本的JDK和Node.js。 2. 打开终端或命令行界面,并通过npm安装Vue CLI(Vue Command Line Interface)。在终端中运行以下命令: ``` npm install -g @vue/cli ``` 3. 创建一个新的Vue 3项目。在终端中运行以下命令: ``` vue create my-project ``` 根据提示选择使用Vue 3版本和一些其他配置选项。 4. 进入项目目录。在终端中运行以下命令: ``` cd my-project ``` 5. 开发前端。通过Vue CLI提供的开发服务器,在本地运行前端项目并进行开发。在终端中运行以下命令: ``` npm run serve ``` 这将启动开发服务器,并提供一个本地地址,例如:http://localhost:8080。在浏览器中打开此地址,你将看到默认生成的Vue欢迎页面。 6. 下载Spring Boot后端项目。可以在GitHub等代码托管平台上搜索和下载基于Spring Boot的后端项目模板。选择一个合适的项目,下载并解压缩。 7. 在IDE(如IntelliJ IDEA)中打开后端项目。将此项目导入你的IDE,并按照需要进行配置和修改。 8. 运行后端项目。通过IDE的运行按钮或在终端中运行以下命令启动后端项目: ``` ./mvnw spring-boot:run ``` 后端项目将启动,并监听默认端口8080。 9. 在Vue前端项目中配置跨域访问。由于前后端分离,前端将运行在不同的域上,需要配置后端允许跨域访问。在Vue项目的src目录下创建一个vue.config.js文件,并在其中添加以下代码: ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:8080', ws: true, changeOrigin: true } } } } ``` 10. 在前端项目中发起API请求。根据后端项目的API文档,在前端项目的代码中编写对后端接口的调用。可以使用Vue提供的axios等HTTP库来发送请求。 通过以上步骤,你就可以开始在本地开发一个基于Spring Boot和Vue 3的大型前后端分离项目实战。根据实际需求,你可以进一步完善前后端的交互和功能。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dorable_Wander

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值